zeichen zählen?
-
[cpp]# include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() !=EOF)
++nc;
printf("%ld\n", nc);
}hi an alle,
ich habe da ein problem (bin anfänger). der vorstehenden prog.code ist aus prog. in c von Braian W. Kernighan und soll wie die überschrift schon sagt zeichen zählen. tut es aber nicht. wo steckt der fehler?
-
dann mal eine Frage. Was tut nicht? Zeigt es 0 an? wenn ja:
# include <stdio.h> main() { int c, nc = 0; while (c = getchar() != EOF) { ++nc; printf("%d\n", nc); } }
kein großer Unterschied aber so tuts bei mir.
-
#include <stdio.h> int main(void) { long nc = 0; while (getchar() != EOF) ++nc; printf("%ld\n", nc); return 0; }
das sollte eher gehen, aber um es nochmal zu verdeutlichen: was geht nicht?
lesen!:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-136013.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-134691.html
-
Danke Craw
sorry zur konkretisierung, ich hatte keine ausgabe. durch deine verbesserung zählt er jetzt
alt:
# include <stdio.h>main()
{
long nc;
nc = 0;
while (getchar() !=EOF)
++nc;
printf("%ld\n", nc);
}neu:
# include <stdio.h>
main()
{
long c,
nc = 0;
while (c = getchar() != EOF) {
++nc;
printf("%d\n", nc);
}
}ich hab verstanden. es fehlte lediglich die geschleifte klammer
-
Nicht verstanden, es fehlte das '\n'!
EDIT: Sorry, natürlich Humbug, aber trotzdem funzt das Programm auch ohne die geschweiften Klammern.