while(~scanf(“%d“,&a)&&~a)用法

简介: while(~scanf(“%d“,&a)&&~a)用法

while() 循环 :只要括号不为0,就执行循环。

~ :将一个数字按位取反0变为1 ,1变为0。

while(scanf("%d",&a) ):输入一个值判断

6762c27aad644fd2b6e809a0d8ea70b1.png

scanf("%d", &a,);

如果a被成功读入,那么scanf的返回值就是1;如果a未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF,且返回值为int型。


输入数字会返回1,会执行;输入字母或者违规字符会直接返回end of file 退出程序。

while(~scanf("%d",&a))

749a895a59dd48c0a16fc25d37be0ed3.png将scanf("%d", &a,):返回值按位取反:


这个程序当我输入1,scanf返回1,取反为-2,进入循环,


当我输入4,scanf返回1,取反为-2,进入循环,


当我输入b,scanf读取失败,返回0,取反为-1,进入循环,


循环继续,当我输入ctrl+z,再按下enter,告诉程序已经到了EOF(通常EOF=-1),取反为0,循环结束。


while(~scanf("%d",&a)&&~a)

b966f4cce650486288488bf286c114ea.png


输入5scanf返回1满足条件进行--操作;


输入-1 由于~a    所以~-1返回0.


&&是两边数字满足while()循环括号不为0才执行括号里面内容。


现在-1取反为0;退出循环;


while(~scanf("%d",&a)&&~a)作用:输入一个不为-1的数都可以进入while循环,退出要按Ctrl+C。

目录
相关文章
|
1月前
|
C语言
你真的学会了printf和scanf函数吗?
你真的学会了printf和scanf函数吗?
|
4月前
|
存储
学习printf的基本用法
学习printf的基本用法
|
9月前
|
C++
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
|
3月前
|
数据安全/隐私保护
scanf与getchar连用的注意事项
这里主要讲述scanf函数和getchar函数连续使用的注意事项
31 2
|
4月前
c中scanf函数注意点
c中scanf函数注意点
30 0
|
4月前
|
缓存
scanf和printf函数
scanf和printf函数
57 0
|
5月前
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值
|
9月前
|
C语言 数据安全/隐私保护
【C语言】getchar与scanf输入函数注意事项
【C语言】getchar与scanf输入函数注意事项
58 0
|
10月前
|
人工智能
scanf函数与getchar函数区别
scanf函数与getchar函数区别
111 0
|
IDE 编译器 开发工具
VS 调用 scanf 的正确姿势
VS 调用 scanf 的正确姿势
272 0
VS 调用 scanf 的正确姿势