字符计数程序不输出任何内容

时间:2015-12-13 04:15:45

标签: c mingw32

我尝试过Dev-C ++和MinGW(32位)但每次运行代码时都没有输出。我使用的是Windows 7.下面是我的代码。

#include<stdio.h>
main()
{
  long nc;
  nc=0;
  while(getchar()!=EOF)
    ++nc;
  printf("Number of chars are %ld ",nc);
}

我也试过了pressing Ctrl-D to signal the EOF,但它没有用。当我输入&#34; rajkumar&#34;并且[输入]它没有做任何事情。当我输入&#34; rajkumar&#34;和^ Z [输入]两次,结束。所有我问的是它为什么不打印预期的输出?当我第一次尝试它时它工作了两次,但后来我不知道出了什么问题。

4 个答案:

答案 0 :(得分:3)

基于this answer,触发EOF检测,

  • 首先执行 ENTER
  • 然后按 control Z (或Linux上的^ D),必须在行的开头
  • 如果仍未触发检测,请再次按 ENTER

答案 1 :(得分:1)

要在Windows上发出EOF信号,请按Ctrl-Z,然后按Enter键。

注意:这适用于Windows控制台。如果您在IDE中运行该程序,您的IDE可能会或可能没有办法发出EOF信号。

答案 2 :(得分:0)

getchar()获得一个字符,它也接受Enter。因此,如果按r然后按Enter,则只输入r。所以你需要在按下键后按Enter键。如果没有Enter,getchar()将不接受该字符。

答案 3 :(得分:-1)

尝试将\ n放在printf的末尾。类似于:printf("Number of chars are %ld /n",nc);