1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

C/ C++ Programmieren - Probleme unter XCode

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Rookie79, 01.11.06.

  1. Rookie79

    Rookie79 Tokyo Rose

    Dabei seit:
    08.11.05
    Beiträge:
    68
    Hallo zusammen,

    dieses Semeser ist es wieder soweit: Informatik2 Praktikum - Programmieren unter C++

    Nun dachte ich mir: Bevor ich MS Visual C++, mit dem bei uns in der Fakultät normalerweise gearbeitet wird unter VirtualPC installiere, probier ich das doch gleich mit XCode. Soll ja eh komfortabler sein. Dachte ich...

    Also ran an die erste Übung. Ich muss ein gegebenes Programm analysieren, erweitern und optimieren. Ich krieg aber nichtmal das Ausgangsprogramm zum laufen :(

    Wenn ich "build & go" anklicke läuft das Programm an und fragt nach dem ersten Wert.
    Wenn ich dann eine Zahl eingebe kommt folgende Fehlermeldung:

    Code:
    Inf2 Übung0 has exited due to signal 10 (SIGBUS).
    Eigentlich sollte das aber schon laufen.
    Woran könnte das denn liegen?

    Noch eine zweite Frage:
    Unter MS Visual konnte ich in meinem laufendes Projekt mehrere verschiedene .c Quellcode Dateien. Dann musste ich nur mit "set active file" (oder so ähnlich) dasjenige anwählen daß ich kompiliert und laufen haben wollte.
    Wie geht das denn unter Xcode?
    Wenn ich da ein zweites Quellcodefile eines anderen Programms (beispielsweise der nächsten Übung) anlege kompiliert er mir immer das erste file... doof...

    Alternative wäre, für jede Übung ein neues Projekt anlegen. Es sollte aber doch auch möglich zu sein die files alle in einem Projekt handeln zu können, oder...?

    Danke schonmal für Eure Hilfe!
     
  2. patz

    patz Châtaigne du Léman

    Dabei seit:
    15.11.05
    Beiträge:
    822
    Dein Programm greift wohl auf einen Speicherbereich zu, der ungültig ist - Bug im Programm, unsauber geschrieben?
    Hast du mal den Sourcecode?
     
  3. Rookie79

    Rookie79 Tokyo Rose

    Dabei seit:
    08.11.05
    Beiträge:
    68
    Ich werds dem Prof sagen :D :D

    Glaub ich aber eher nicht...
    Hier der Sourcecode

    Code:
    /************************************************************************\
    * Dateiname:   FAHR2CEL.C
    * Projekt  :   INFORMATIK II, Einfuehrung in das Programmieren in C
    *              Vorlage zur 1.Uebung
    *
    * Kurzbeschreibung:
    *    Temperatur-Umrechnung von Grad Fahrenheit in Grad Celsius mittels
    *    der Formel:   TempCelsius = (5/9) * (TempFahr - 32)
    *    und Bildschirmausgabe in Tabellenform, mit Parameter-Abfrage
    *
    * Eingabe:    Start-, Endwert u. Schrittweite f. F-Temperaturbereich 
    * Ausgabe:    formatierte, zweispaltigen Tabelle von F- und C-Temperaturen
    *
    * Datum:     Autor:       Grund der Aenderung:
    * 13.04.98   mys          Neuerstellung
    \************************************************************************/
    
    #include <stdio.h>	/* Informationen zu Ein-/Ausgabefunktionen	*/
    /* der Standardbibliothek			*/
    
    #define MAX_ANZAHL_WERTE	20	/* max. Tabellen-Laenge */
    
    
    int	main(void)
    {
    	
    	/* Vereinbarungsteil */
    	
    	int   minTempFahr;                /* F-Startwert */
    	int   maxTempFahr;                /* F-Endwert */
    	int   deltaTempFahr;              /* F-Schrittweite */
    	int   TempFahr;                   /* laufender F-Temperaturwert */
    	int   TempCelsius;                /* laufender C-Temperaturwert */
    	int	  AnzahlWerte;                /* Anzahl der Tabellenwerte */
    	
    	/* Beginn des Anweisungsteils */
    	/* Eingabewerte abfragen */
    	
    	printf("\nBerechnung einer Fahrenheit/Celsius-Umrechnungstabelle\n");
    	printf(  "------------------------------------------------------\n");
    	
    	printf("\nStartwert in [Grad] Fahrenheit = ?   "); scanf("%f", minTempFahr);
    	printf("\nEndwert in [Grad] Fahrenheit   = ?   "); scanf("%f", maxTempFahr);
    	printf("\nTemperatur-Schrittweite     = ?   "); scanf("%f", deltaTempFahr);
    	
    	AnzahlWerte = (maxTempFahr - minTempFahr) / deltaTempFahr + 1;
    	if (AnzahlWerte > MAX_ANZAHL_WERTE)
    	{
    		printf("\n%d sind zu viele TabellenWerte, maximal %d zulaessig !\n\n", \
    			   AnzahlWerte, MAX_ANZAHL_WERTE);
    		printf("\nProgrammabbruch !\n");
    		return (-1); /* Return-Code von main() an das Betriebssystem: -1 = Fehler */
    	}
    	
    	
    	if (minTempFahr > maxTempFahr)
    	{
    		printf("\nUnzulaessige Eingabe: Endwert %d < Startwert %d !\n\n", \
    			   minTempFahr, maxTempFahr);
    		printf("\nProgrammabbruch !\n");
    		return (-1); /* Return-Code von main() an das Betriebssystem: -1 = Fehler */
    	}
    	
    	
    	/* Vorbesetzungen fuer Startwerte */
    	
    	TempFahr = minTempFahr;		/* Startwert fuer TempFahr */
    	printf("\nFahrenheit/Celsius-Tabelle \n\n");	/* Tabellenkopfzeile */
    		   
    		   /* Verarbeitung und Ausgaben */
    		   
    		   do					                          /* Umrechnungsformel auswerten und */
    		   {                                     /* Fahrenheit-/Celsius-Werte ausgeben */
    		   TempCelsius = 5 / 9 * (TempFahr - 32);
    		   
    		   printf("  %6d    %6d \n", TempFahr, TempCelsius);
    		   /* zwei Spalten im Ganzzahlformat ausgeben */
    		   
    		   TempFahr = TempFahr + deltaTempFahr;
    		   
    		   } while (TempFahr <= maxTempFahr); 	  /* Ende der do-while-Schleife */
    		   
    		   
    		   printf("\nProgramm wird nach beliebiger Eingabe beendet !\n");
    		   getch();    /* stop vor R¸ckkehr in Debugger */
    		   
    		   return (0);	/* Return-Code von main() an das Betriebssystem: 0 = OK */
    		   
    }  /* Ende des Hauptprogramms main() */
    		   
    		   
     
  4. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Bei mir meckert er:

    Undefined symbols:
    _getch

    Und wo er recht hat, hat er recht. Wenn ich mich richtig erinnere, ist getch Teil von Borlands conio. Nimm mal lieber getchar (3).

    Und wenn Du das Programm mit -Wall kompilierst siehst Du auch, woher der Bus Error kommt:

    test.c: In function 'main':
    test.c:42: warning: format '%f' expects type 'float *', but argument 2 has type 'int'
    test.c:43: warning: format '%f' expects type 'float *', but argument 2 has type 'int'
    test.c:44: warning: format '%f' expects type 'float *', but argument 2 has type 'int'

    Also, in %f soll eine Variable vom Typ float gelesen werden. Du gibts im aber ein int. Das kann nicht gut gehen

    Alex

    EDIT: Also ja, unsauber geschrieben.
     
  5. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    View -> Groups & Files Columns -> Target Membership anschalten. Dann kannst Du an und ausklicken.

    Alex
     

Diese Seite empfehlen