Problem mit EOF
-
Hi,
bin ein Umsteifer von PASCAL und habe ein Aufgabenbuch....
darin wir ein Beispiel über Zeicheneingabe und Ausgabe aufgebaut#include <stdio.h> /* Einfaches Kopierprogramm*/ main() { int c; while((C = getchar()) != EOF) putchar(c); }
dann werden folgende Aufgaben gestellt:
1. Prüfen Sie nach, daß der Ausdruck getchar() != EOF den Wert 0 oder 1
liefert.2. Schreiben Sie ein Programm, das den Wert von EOF ausgibt.
Leider kann ich das nicht lösen; das Buch setzt aber glaube ich voraus, dass man sich damit schon mal befasst hat, ist von Kernighan.
Habe schon versucht mit printf("%i",EOF); kommt aber nur mist raus.
Kann mir wer helfen; aber bitte erstmal nur Lösungen auf dem Nivoue der Beispielaufgabe, vielleicht zusätzlich noch eine Profilösung, zum anschauen.
Danke.
-
Kennt sich keiner damit aus? soll laut buch noch ne Einsteigeraufgabe sein.
-
1. a) man guckt in den ANSI-Standard. Da steht irgendwo, dass der == Operator bei Ungleichheit 0 und bei Gleichheit 1 zurückliefert.
b) printf("%d\n", getchar() == EOF);2. printf("%d\n", EOF); /* müsste < 0 sein, meistens -1 */
Was meinst du mit, "kommt nur mist raus"?
-
#include <stdio.h>
int main()
{int count=-10;
while(count!=EOF) {count++;}
printf("EOF hat den Wert %d\n" ,count);return 1;
}
-
-
ghost: Den echten Standard(TM) gibts bei www.ansi.org für lumpige 18 Dollars; im Normalfall reicht aber auch der Final Draft. Den findest du, wenn du bei Google nach "n869" suchst.
Eine deutsche Übersetzung ist mir nicht bekannt.
-
Der aktuelle C Standard wird demnächst auch als Buch erscheinen: http://www.wileyeurope.com/WileyCDA/WileyTitle/productCd-0470845732.html
Wenn Du aber gerade erst in C einsteigst, brauchst Du das IMO nicht zwingend.
Die Lösungen für die Aufgaben aus Deinem Buch kannst Du hier abrufen: http://users.powernet.co.uk/eton/kandr2/ Es gibt auch ein sog. Lösungsbuch zum K&R.