+ -
当前位置:首页 → 问答吧 → 【入门】getchar()的问题

【入门】getchar()的问题

时间:2010-08-20

来源:互联网

  1. #include <stdio.h>
  2. main()
  3. {
  4.     double nc;
  5.     for(nc=0;getchar()!=EOF;++nc)
  6.     ;
  7.     printf("%.0f\n",nc);
  8. }
复制代码
运行之后,我输入几个字符然后回车,怎么没有反应呢?

作者: crazybu   发布时间: 2010-08-20

> getchar()!=EOF

ctrl+d

作者: EricFisher   发布时间: 2010-08-20

回复 crazybu


    将你那个EOF改为'\n'

作者: chong232   发布时间: 2010-08-20

回车不代表EOF,一般Linux下是Ctrl+d,Windows下是Ctrl+z来表示EOF

作者: daybreakcx   发布时间: 2010-08-20

明白了,谢谢。

作者: crazybu   发布时间: 2010-08-20

回复 daybreakcx
如果我输入"test"("不是输入内容),应该输出什么呢?

作者: crazybu   发布时间: 2010-08-20

输出是 4 吧。

作者: pandaiam   发布时间: 2010-08-20

我怎么输出的是5

作者: crazybu   发布时间: 2010-08-20

输入之后 回车,ctrl+z才跳出。直接ctrl+z不跳出啊。

作者: crazybu   发布时间: 2010-08-20

回复 crazybu


    因为如果你是在控制台下输入的话,貌似只有在新的一行时候输入Ctrl+d或者Ctrl+z有效,所以如果你真的要弄成那个串在控制台下输,包括回车是5,但是如果你想让它出4的话,你可以通过文件过去,或者类似这种方式:
  1. echo -n test | ./a.out
复制代码

作者: daybreakcx   发布时间: 2010-08-20

学习了

作者: crazybu   发布时间: 2010-08-20