在c语言中对一个变量循环输入整数,中间是回车还是空格

比如while(scanf(%d,&m)!=EOF).....当我在循环输入的时候数字间按回车结果是正确的,为什么数字之间是空格就是错误的呢?求解啊、、、... 比如
while(scanf(%d,&m)!=EOF)
.....

当我在循环输入的时候数字间按回车结果是正确的,为什么数字之间是空格就是错误的呢?求解啊、、、
展开
 我来答
慕雪随逸
2012-10-12
知道答主
回答量:12
采纳率:0%
帮助的人:19.1万
展开全部

首先,你应该是是手误,少了双引号,应该是:while(scanf(“%d”,&m)!=EOF),

        而问题也不是这里,由于刚装了VS,似乎有点问题,我试着用C写了东西,尝试了一下,可以参考一下。

       我的代码如下:

       

 

       首先声明,

       EOF,用来判断文件结束的标记(end of file),在循环中也用来作为一系列数据输入时终止循环 。EOF是stdio库中的常量,在windows里值是-1,windows中的命令行程序是按Ctrl+Z。

      示例程序的功能很简单,就不多解释了,运行结果如下:

     

     分别为 利用回车与空格。

    你说的错误具体值什么,是非法数据么?

    我的理解你错误的原因有两个,1.是输入数据非法或者没使用正确的EOF终止方式;2.是数据缓存区的某些东西导致出错。

    关于2,可以去了解我注释掉的函数flushall()的功能,也许是这个的原因吧。。

 

      望,有所帮助。。。

追问
你邮箱多少我把代码发给你,我是按一次c+z在按一次才会有输出
追答
qq:#809178554#
kaixingui2012
2012-10-12 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6219万
展开全部
是你循环中的语句的问题。循环中应该还有scanf()类的数据输入,晒出完整的循环语句,才能看清楚问题原因
更多追问追答
追问
没问题了。只是结束要输入两个ctrl+z为什么
追答
在windows下,只有ctrl+z才能让scanf()返回-1(EOF)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明柳梦少
2012-10-12 · TA获得超过239个赞
知道小有建树答主
回答量:191
采纳率:96%
帮助的人:85.7万
展开全部
要看你定义的输入函数是什么格式了。比如,如果你是这样:
scanf(“d%,d%”,&a,&b);那你输入时,输完第一个数后,还要再加一个逗号,然后才接着输第二个数。就是说,要关注两个d%间的形式。如果不懂,建议还是看谭浩强编的那本<c程序设计(第三版)>吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉默石头aaron
2012-10-12
知道答主
回答量:17
采纳率:100%
帮助的人:5万
展开全部
scanf()是有返回值的,然后你看看EOF是宏定义,就会知道 了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haibianyunduo
2012-10-12 · 超过12用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:19.9万
展开全部
使用函数前先搞明白函数的特性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式