C语言scanf用法

scanf可以作为判断条件例如:inta;while(scanf("%d",&a)==1){语句;}在这里只要输入的值是int型就能进入循环,我输入个2或者3都能进入循环... scanf可以作为判断条件例如:

int a;
while(scanf ("%d", &a) == 1)
{
语句;
}在这里只要输入的值是int型就能进入循环,我输入个2或者3都能进入循环
但是又遇到了
char ch;
while (scanf("%c", &ch) != '\n')
{
语名
}在这里要求输入的值不是回车才能循环,
上边的是只要输入类型符合条件就行,下边的是输入的内容符合条件才行,
想问的是scanf的返回值到底是什么
新手自学,可能问的问题有点蠢,请见谅。。。
展开
 我来答
gao5521036
高粉答主

2019-11-13 · 醉心答题,欢迎关注
知道小有建树答主
回答量:7225
采纳率:83%
帮助的人:573万
展开全部

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

lkstc112233
2013-07-08 · TA获得超过203个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:184万
展开全部
恕我直言,您的方法能用恐怕是一个巧合。
在scanf从标准输入流抽取数据时,如果按照您的写法是会抛弃那个回车的。
所以您读取的东西永远不是回车,而成功赋值的变量数非零即一,和'\n'的值亦均不同。
您有试过终止循环吗?没有吧,试过肯定也失败了吧。
请按楼上所述来写,这个写法很精妙,还利用了&&的”短路“思想呢。
抄一遍:(scanf("%c", &ch) && ch != '\n')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d580670
2013-07-08 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:691万
展开全部
scanf的返回值是得到变量的个数,
所以可以这样用
(scanf("%c", &ch) && ch != '\n')
追问
我的第二种写法在vc++6.0里也是成立的,按你说的,我写的第一个是得到变量的个数,而我写的第二个是得到变量的内容再和后边的'\n'进行比较看是否成立,所以我晕了,到底它的返回值是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦之阳4
2013-07-08 · 超过11用户采纳过TA的回答
知道答主
回答量:266
采纳率:0%
帮助的人:58.7万
展开全部
scanf 输入函数 将从键盘等输入设备的输入数据传送到地址参数上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
战子骞皮抒
2020-04-18 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:31%
帮助的人:909万
展开全部
"非要在输入一个数值按回车才算书输入完成"
肯定的。你不手动回车,控制台不知道你输入结束, "\n"肯定不行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式