Kommer inte ur while - loopen - så att printf kan skrivas efter while - någonting är fel, men vad ? Läser du in data från tangentbordet eller från en fil genom <b>program < fil.txt</b> ? Tackar Använder du Dev-C++ ? Jag gjorde litet tester i den och det verkar som man måste ha CTRL-Z (EOF) i början av en rad. Placerar man ett mellanslag före, hittas inte EOF. Vet inte om det är en bugg i kompilatorn eller en feature eller standard i Windows.Kommer inte ur while loopen ?
#include<stdio.h>
#define INSIDEWORD 1
#define OUTSIDEWORD 0
/* Count the Number of Words given as Input */
main()
{
int c,nwords,state;
state = OUTSIDEWORD;
nwords = 0;
while( ( c = getchar() ) != EOF )
{
if ( c == ' ' || c == '\n' || c == '\t' )
{
state = OUTSIDEWORD;
printf("first\n");
}
else if ( state == OUTSIDEWORD )
{
state = INSIDEWORD;
++nwords;
printf("second\n");
}
}
printf("\nThe Number of Words is %d\n",nwords);
system("PAUSE");
return 0; Sv: Kommer inte ur while loopen ?
Om du läser in från tangentbordet, ger du programmet ett EOF-tecken (CTRL-Z tror jag det var)?Sv: Kommer inte ur while loopen ?
Från tg-bordet, och visst är det som du skrev ctrl-z, men först efter att man har tryckt på retur och sedan får man trycka ctrl-z och retur igen, men nu har jag kommit en bit på vägen i alla fall.Sv: Kommer inte ur while loopen ?