Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

C - Command Line Programmieren - XCODE
#1

Hallo liebe Community,

ich habe mal wieder eine Frage:

Wir Programmieren in der Schule zur Zeit mit C (Command Line).
Ich verwende bis jetzt immer Visual Studio 2010 Express.

Mit XCODE habe ich mich auch schon versucht, nur funktioniert das nicht so richtig.

Vor allem mit der Ausgabe von Programmen (C, Commandline wie gesagt) habe ich Probleme. Es funktioniert nur manchmal, und auch nur dann eher recht als schlecht.

Auch Fehlen mir Header Dateien wie "conto.h".


Gibt es da irgend eine Möglichkeit, unter Mac OS X so zu Programmieren wie unter Windows?

iPhone 5 16GB Schwarz - iPad 2 16GB Schwarz - MacBook Air 2012 13'' 128GB
Zitieren
#2

Keiner von euch da, der das gleiche macht wie ich? ^^ Wäre für jeden lösungsweg offen.

iPhone 5 16GB Schwarz - iPad 2 16GB Schwarz - MacBook Air 2012 13'' 128GB
Zitieren
#3

Poste doch einfach mal deinen source Code, vermutlich main.c

dann kann ich dir weiter helfen.
Zitieren
#4

Hallo erstmal!

Sooo... wie gesagt, manche Programm die unter Windows super funktionieren laufen unter OS X auch. Manche, die eben unter Windows funktionieren laufen unter OS X nicht.

Das hier z.B. ist ein Taschenrechner der NUR unter OS X nicht läuft.
Wenn ich nach dem Kompilieren die Zahlen eingebe kommt es zu einem Ausgabefehler, der wie gesagt nur unter OS X nicht funktioniert.

#include <stdlib.h>
#include <stdio.h>

int main()
{
float zahl1, zahl2, erg;
char op, wdh;

do
{
printf("Geben Sie die erste Zahl ein:\n");
scanf("%f", &zahl1);
printf("Geben Sie die zweite Zahl ein:\n");
scanf("%f", &zahl2);

do
{
printf("Waehlen Sie die Rechenoperation(+, -, *, /)\n");
fflush(stdin);
scanf("%c", &op);

if(op=='+')
{
erg = zahl1 + zahl2;
}
else if(op=='-')
{
erg = zahl1 - zahl2;
}
else if(op=='*')
{
erg = zahl1 * zahl2;
}
else if(op=='/')
{
erg = zahl1 / zahl2;
}
else
{
printf("Fehler!\n");
}
}
while(op != '+' && op != '-' && op != '*' && op != '/');

printf("%.2f %c %.2f = %.2f\n\n", zahl1, op, zahl2, erg);

printf("Wiederholen? (j, n)\n");
fflush(stdin);
scanf("%c", &wdh);

}
while(wdh == 'j' || wdh == 'J');

return 0;
}

iPhone 5 16GB Schwarz - iPad 2 16GB Schwarz - MacBook Air 2012 13'' 128GB
Zitieren
#5

Sorry, ich habe von c überhaupt keine Ahnung. Aber bei deinem Code fehlt das schließen der Funktion Main nach dem Return 0.
Zitieren
#6

(17.01.2013, 22:49)oldster schrieb:  Sorry, ich habe von c überhaupt keine Ahnung. Aber bei deinem Code fehlt das schließen der Funktion Main nach dem Return 0.
wieso sagst du dann dazu was?


Unsinn die } ist vorhanden, sonst würde er es garnicht bauen.

Ich habs gerade gebaut und bei mir getestet. Was mir aufgefallen ist:

fflush(stdin);

scheint auf den mac nicht richtig zu funktionieren, dies könntest du beim debugging merken. z.b. wenn ich als 2te zahl "hallo" eintippe ist der buchstabe in op ein "h" daher sehen wir das der inputbuffer nicht geleert wird. das gleiche problem ist unten bei der exit möglichkeit auch. Tippt man aber eine zahl bei 2te zahl ein so steht im inputbuffer noch ' ⁄n' drin somit durch läufst du einmal deine schleife und bekommst die ausgabe "Fehler".

Variabeln immer initialisieren also
Code:
float zahl1 = 0, zahl2 = 0, erg = 0;

denn sonst steht da müll drin wenn keiner eine zahl in tippt
Zitieren
#7

Oops, ich habe mir den code heute mal am PC angesehen und da ist natürlich alles zu sehen.

Das blöde Tapatalk hat mal wieder die Hälfte verschluckt.

Bitte, bitte, verzeiht mir meinen Unsinn.
Zitieren


Möglicherweise verwandte Themen…
Thema / Verfasser Antworten Ansichten Letzter Beitrag
Letzter Beitrag von rice
19.07.2012, 17:37



Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste