mumum11 Geschrieben 18. Juni 2008 Teilen Geschrieben 18. Juni 2008 Also ich fang grade an C zu lernen mit dem Buch Galileo Computing / <openbook> / C von A bis Z Als Compiler nehme ich unter Windos den DEV C++ Compiler (worin man auch C prog. kann) Wenn das Programm korrekt abläuft, wird nach einer Zahl gefragt. Jetzt gibt der Anwender eine Zahl ein und drückt (¢). Anschließend gibt das Programm die Zahl, die eingegeben wurde, auf dem Bildschirm aus und wird beendet. Das soll das Programm abarbeiten: Problem ist das ich nicht weiß wo ich die dann anzuzeigendezahl Eintragen soll. Hätte hir gedacht scanf("%d",&Zahl); aber da kommt eine Fehlermeldung.Und wenn ich im Programm enter drücke schließt es sich wieder und zeigt die letzte Zeile nicht an. /* scanf1.c */ #include <stdio.h> int main (void) { int i; /* Ein ganzzahliger Datentyp */ printf("Bitte geben Sie eine Zahl ein : "); i=getch(); scanf("%d",&i); /* Wartet auf die Eingabe */ printf("Die Zahl, die Sie eingegeben haben, war %d\n",i); getchar(); return 0; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 19. Juni 2008 Teilen Geschrieben 19. Juni 2008 Hätte hir gedacht scanf("%d",&Zahl); aber da kommt eine Fehlermeldung."Da kommt eine Fehlermeldung" ist keine ausreichende Fehlerbeschreibung. Der Text der Meldung ist immer extrem hilfreich bei der Diagnose, auch wenn er Dir nichts sagt. Zumindest kann ich aber sagen, dass ich nicht weiß, was der Aufruf von getch da soll. Das ist auch keine Standardfunktion. Und wenn ich im Programm enter drücke schließt es sich wieder und zeigt die letzte Zeile nicht an.Getchar allein reicht nicht, um die Konsole offen zu halten. Schau mal hier rein: http://forum.fachinformatiker.de/c-c/116794-problem-programm.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 19. Juni 2008 Teilen Geschrieben 19. Juni 2008 Zumal getch eine ungepufferte Eingabe ist... D.h. wenn du nach der Aufforderung z.B. 123 eingibst, wird mittels getch zu erst der Dezimalwert von 1 (=49) gespeichert und danach die scanf-Funktion mit 23 aufgerufen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mumum11 Geschrieben 23. Juni 2008 Autor Teilen Geschrieben 23. Juni 2008 sorry das ich jetz nicht gleic zurückgeschrieben hab. Also als Fehlerlmeldung kommt da: in function ´main´: invalid Ivalue in unary '&' diese Fehlermeldung kommt wenn ich das da eingebe ("%d",&100) Bisschen versteh ich ja die Fehlermeldung also in der Funktion (teil). Ist ein unbekannter Typ deklariert oder so. @ Klotzkopp dein Link hat mich auch nicht wirklich weitergebracht. kleine Änderung habe euch den falschen Quelltext gegeben ist passiert als ich rumprobiert hatte. das i= get.. ist nicht drinn /* scanf1.c */ #include <stdio.h> int main (void) { int i; /* Ein ganzzahliger Datentyp */ printf("Bitte geben Sie eine Zahl ein : "); scanf("%d",&i); /* Wartet auf die Eingabe */ printf("Die Zahl, die Sie eingegeben haben, war %d\n",i); return 0; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 24. Juni 2008 Teilen Geschrieben 24. Juni 2008 sorry das ich jetz nicht gleic zurückgeschrieben hab. Also als Fehlerlmeldung kommt da: in function ´main´: invalid Ivalue in unary '&' diese Fehlermeldung kommt wenn ich das da eingebe ("%d",&100) Bisschen versteh ich ja die Fehlermeldung also in der Funktion (teil). Ist ein unbekannter Typ deklariert oder so. Das ist auch klar. & gibt die Adresse einer Variable zurück. Wenn du aber einen Wert hast, der keine Variable ist, dann ist der nirgends im Speicher abgelegt. Folglich kannst du nicht auf die Adresse zugreifen. &100 würde auch nicht viel bringen, wenn du eine int-Variable einlesen willst, kannst du nicht sagen, dass die 100 sein soll. An sich sollte der Code eigentlich gehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.