Войти

Показать полную графическую версию : [решено] Подсчет количества строк в Си


dionis12006
25-01-2011, 13:50
Есть код:
#include <stdio.h>
#include <stdlib.h>
#define no 0
#define yes 1

int main()
{

int c,line,word,kc,inword=0;
line=word=kc=0;
while((c=getchar())!=EOF)
{
kc=kc+1;
if(c=='\n') line=line+1;
if(c==' ' || c=='\n' || c=='\t')
inword=0;
else
if(!inword)
{
inword=1;
word=word+1;
}
}

printf("\n");
printf("строк - %d\n",line);
printf("символов - %d\n",kc);

}

Он должен вывести количество введенных строк, при запуске в Code Blocks, после набора нескольких слов и нажатия Enter, он просто переходит на новую строку, а не показывает количество строк. Код из книги Керниган, Ричи "Язык Си"Кто может подсказать, где мой косяк?

Beyound
25-01-2011, 17:57
наверное суть в том что энтер не является признаком конца файла, т.е. энтер - это 2-а символа - 13 и 10, не имеющих никакого отношения к EOF; EOF я точно непомню, но с клавы его можно ввести магическим сочитанием с участием cntl (cntl+z попробуй). Вроде EOF - 26 символ.

dionis12006
27-01-2011, 15:57
Точно(Ctr + Z), Спасибо!!!




© OSzone.net 2001-2012