博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scanf返回值的问题
阅读量:7059 次
发布时间:2019-06-28

本文共 1110 字,大约阅读时间需要 3 分钟。

scanf返回值的问题

关于scanf的返回值,MSDN里是这样写的:
Both scanf and wscanf return the number of fields successfully converted
and assigned; the return value does not include fields that were read but
not assigned. A return value of 0 indicates that no fields were assigned.
The return value is EOF for an error or if the end-of-file character or the
end-of-string character is nocountered in the first attempt to read a character.
如:
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。不经意中发现scanf()的返回值问题,自己试验和了解了一下,一些所知与各位分享; 
void main() 
int a; 
int b; 
int c; 
printf("请输入三个整数:"); 
int x=scanf("%d%d%d",&a,&b,&c); 
printf("%d\n%d\n",a,x); 
1.scanf()函数有返回值且为int型。 
2.scanf()函数返回的值为:正确按指定格式输入变量的个数;
也即能正确接收到值的变量个数。 
从上边的例子中可以得到验证,这里用变量x接收scanf()函数的返回值,并输出显示出来。当运行中输入三个整数:5 6 7则x的值为3;如果输入5 6 d(即给c 赋值不正确)则x的值为2;如果输入5 t d(即给b和c 赋值不正确)则x的值为1; 
其实scanf()的返回值对我们来说也很有用的,比如我们在使用这个函数进行接收值时,我们很必要知道对要给赋值的变量是否正确的赋值成功了,所以可以使用if(scanf("%d,%d",&a,&b)==2)这样语句来判断是否正确的给所有的变量赋值了,正确的话才能使用这个变量参与运算,这样才能提高我们代码的安全性,所以这个返回值也是大有用途的.(转)。

转载于:https://www.cnblogs.com/CloudPing/p/3689093.html

你可能感兴趣的文章
MySQL-临时表、复制表、元数据
查看>>
使用PopupWindow和Activity两种不同的方式实现弹窗效果
查看>>
nodejs进阶(7)—async异步流程控制
查看>>
轻量级的惰性控件——ViewStub
查看>>
使用sed修改配置项的值
查看>>
iOS局部刷新
查看>>
Python3_list
查看>>
[最新版]MJRefresh解析与详细使用指导
查看>>
Android 常用代码大集合 [转]
查看>>
rpc远程过程协议调用
查看>>
负载均衡
查看>>
梦网云通讯API接口调用错误代码表
查看>>
微信小程序canvas生成的图片保存在相册文字错乱的问题
查看>>
详解响应式布局设计
查看>>
jQuery动画animate()的使用
查看>>
Think in ISP(image sensor pipe )之How to implement an effecitive AE
查看>>
Linux阅读笔记(一)
查看>>
Android五天乐(第三天)ListFragment与ViewPager
查看>>
201521123076 《Java程序设计》第10周学习总结
查看>>
c++ primer 5th 笔记:第六章
查看>>