【问题标题】:Counting number of lines in input string in C计算C中输入字符串中的行数
【发布时间】:2016-03-15 09:35:58
【问题描述】:

这是我的问题-

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'),但是不行!

【问题讨论】:

  • c的类型从char更改为int
  • 如果输入不是来自文件,您可以使用 Crl-D (Unix) 或 Ctrl-Z (Windows) 之一终止它。如果您不这样做,交互式 shell 将等待更多输入。
  • 阅读例如this getchar reference。密切注意函数的返回类型。
  • 一般建议:如果某些事情没有按预期工作,(重新)阅读有关所用函数的文档,仔细
  • 除了 RTFM 部分,问为什么getchar 不返回字符是很合理的。欢迎来到 C.

标签: c eof getchar


【解决方案1】:

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

尝试改变

char c,int nl=1;

int c,nl=1;

【讨论】:

  • 同样的事情还在发生。它不会破裂。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2022-08-02
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多