首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Getchar()无限循环

Getchar()无限循环
EN

Stack Overflow用户
提问于 2018-02-18 08:39:05
回答 1查看 863关注 0票数 3

我开始学习“C编程语言”,书中的代码之一并不适用于我。这段代码假设使用getchar()来计算字符数。

这是我的代码:

代码语言:javascript
复制
#include <stdio.h>

int main()
{
  long nc;

  nc = 0;
  while (getchar() != EOF)
        ++nc;
  printf("%1d\n", nc);

  return 0;
}

我试着运行它并编写一些字符,但是当我按下ENTER时,它只会启动一个新行。就好像它永远也出不来一样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-18 08:41:44

换行符不是EOF。你把EOFEOL搞混了。

当您按下ENTER时,getchar()收到一个换行符:\n,您的程序与其他字符一样对它进行计数。

尝试按CTRL + D (Linux终端)或CTRL + Z (Z终端)向程序发送空输入,从而结束它。

您还可以将输入写入文件,并将此文件作为输入提供给程序,如下所示:

代码语言:javascript
复制
./your_program < your_file

当您的输入来自文件时,当到达文件末尾时,EOF会自动发送到您的程序。这是因为文件中没有更多的输出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48849831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档