计算C中输入字符串中的行数

时间:2016-03-15 09:35:59

标签: c eof getchar

这是我的问题 -

char c,int nl=1;
printf("Enter string");
while((c=getchar()) != EOF)
{
   if(c=='\n')
      ++nl;
}
printf("Number of lines=%d",nl);


没有错误。但是当我提供输入时,它继续接受输入(不要从控制台屏幕出来)。为什么编译器无法读取EOF值? 我也试过while((c=getchar())!='\0')但是没有用!

2 个答案:

答案 0 :(得分:1)

char无法存储EOF。使用int存储getchar()的返回值。

尝试更改

char c,int nl=1;

int c,nl=1;

答案 1 :(得分:1)

您应将c声明为int而不是char