C语言程序运行时,ENTER何时是换行,何时是执行程序啊?
本人小白,自学中。在跟着码《C语言程序设计》第一章的“字符计数”(1.5.2)节时,遇到了这个问题。我先贴一下代码:#include<stdio.h>/*统计输入的字符数...
本人小白,自学中。在跟着码《C语言程序设计》第一章的“字符计数”(1.5.2)节时,遇到了这个问题。我先贴一下代码:#include<stdio.h>/*统计输入的字符数*/main(){ long nc; nc = 0; while (getchar() != EOF) ++nc; printf("%d\n", nc);}程序很简单,按Ctrl+F5运行之后,在窗口里,我输入了任何内容之后(比如:AAAA),按下ENTER键,就换行了,而不是像之前的例子中提到的程序那样,直接运行出结果(此处应该是4)。求问各位朋友,这是怎么回事啊?具体问题就是:除了ENTER,有什么键是使得自己的程序开始运行的?或者说,就是ENTER键什么时候是“换行”,什么时候又变成了“开始运行程序”呢?
代码输入到文本里变形了,我再补一下图 展开
代码输入到文本里变形了,我再补一下图 展开
2个回答
2017-09-03
展开全部
你没理解
在程序运行过程中输入的任何字符都要由你的代码来作判断, 注意是运行过程中
你输入了回车, 你的代码判断到输入的字符是\n, 再作出相应的反应, 意思是由你控制.
你的代码没有达到预期的效果, 是你代码的问题
long nc;
nc=0;
char c;
while(1)
{
c=getchar();
if(c=='\n') break;
++nc;
}
printf("%d\n",nc);
追问
谢谢大神的热心回答!
我是照着书上的例题抄上去的,书上的例题是可以识别换行符('\n')的,它可以识别好多行的字符然后输出总的字符数量。书中解释了,到了一段字符的最后,出现"EOF"(End of files)就会输出结果。。
我不知道这个EOF到底是怎么输入的,是不是有什么特殊键啊。。还望大神帮着我再解答解答,万分感谢!!感谢!!
追答
它的意思是如果你输入了回车, getchar( )函数会返回一个EOF, 那么while循环就会中止, 接着打印nc的值,
但是在很多平台下输入回车并不会返回EOF, 所以while继续执行, 程序继续等待你的输入
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询