在c语言中对一个变量循环输入整数,中间是回车还是空格
比如while(scanf(%d,&m)!=EOF).....当我在循环输入的时候数字间按回车结果是正确的,为什么数字之间是空格就是错误的呢?求解啊、、、...
比如
while(scanf(%d,&m)!=EOF)
.....
当我在循环输入的时候数字间按回车结果是正确的,为什么数字之间是空格就是错误的呢?求解啊、、、 展开
while(scanf(%d,&m)!=EOF)
.....
当我在循环输入的时候数字间按回车结果是正确的,为什么数字之间是空格就是错误的呢?求解啊、、、 展开
6个回答
展开全部
首先,你应该是是手误,少了双引号,应该是: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#
展开全部
是你循环中的语句的问题。循环中应该还有scanf()类的数据输入,晒出完整的循环语句,才能看清楚问题原因
更多追问追答
追问
没问题了。只是结束要输入两个ctrl+z为什么
追答
在windows下,只有ctrl+z才能让scanf()返回-1(EOF)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要看你定义的输入函数是什么格式了。比如,如果你是这样:
scanf(“d%,d%”,&a,&b);那你输入时,输完第一个数后,还要再加一个逗号,然后才接着输第二个数。就是说,要关注两个d%间的形式。如果不懂,建议还是看谭浩强编的那本<c程序设计(第三版)>吧
scanf(“d%,d%”,&a,&b);那你输入时,输完第一个数后,还要再加一个逗号,然后才接着输第二个数。就是说,要关注两个d%间的形式。如果不懂,建议还是看谭浩强编的那本<c程序设计(第三版)>吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf()是有返回值的,然后你看看EOF是宏定义,就会知道 了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用函数前先搞明白函数的特性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询