我尝试过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 [输入]两次,结束。所有我问的是它为什么不打印预期的输出?当我第一次尝试它时它工作了两次,但后来我不知道出了什么问题。
答案 0 :(得分:3)
基于this answer,触发EOF检测,
答案 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);