Problem med teckenräkning i C

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2008-11-02 17:17

Jag håller på att läsa "The C programming language 2nd ed." och har fastnat på ett exempel i boken som skall räkna tecken från tangentbordet och sedan ange resultatet.

Jag har dubbel och trippel kollat men av någon anledning får jag inte något svar när jag trycker enter. Är det någon som har någon ide om vad det kan vara frågan om?

Här är koden:

#include <stdio.h>

// count characters in input

main()
{	
	long nc;
	
	nc = 0;
	while (getchar() != EOF)
		++nc;
	printf("%ld\n", nc);
}

Du läser tecken till dess anropet till getchar returnerar EOF, men EOF betyder end-of-file och inte nyradstecken. Normalt skriver du EOF genom att trycka på ctrl-d.

Om du istället vill att utskrift ska ske vid en ny rad ändrar du villkoret till while så att raden ser ut så här istället.

while (getchar() != '\n')
  • Medlem
  • Stockholm
  • 2008-11-02 18:04

Perfekt, nu funkar det ju som jag trodde att det skulle fungera innan. Bra att få ett förtydligande av EOF. Tack!

Senast redigerat 2008-11-02 18:55
1
Bevaka tråden