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。

目录
相关文章
|
7月前
|
存储 安全 编译器
C语言的scanf输入函数的介绍分享
C语言的scanf输入函数的介绍分享
|
7月前
|
存储
学习printf的基本用法
学习printf的基本用法
|
7月前
|
编译器 C语言 C++
scanf函数
该文介绍了C语言中`scanf`函数用于输入变量值,而`printf`函数用于输出变量值。`scanf`在读取数值时会自动过滤空白字符,允许数据间有空格或换行,不影响解析。`scanf`返回值表示成功读取的变量数,0表示未读取或匹配失败,EOF表示读取错误或文件结尾。常见占位符包括 `%c`(字符)、`%d`(整数)、`%f`(浮点数)、`%s`(字符串)和`%[]`(指定字符集)。对于`%c`,不会忽略空白字符,但可加空格跳过前导空白。文章还提及在VS2022中,`scanf`被认为是不安全的,推荐使用`scanf_s`,并提供了如何在VS中使用`scanf`的解决方法。
149 1
|
7月前
|
编译器 C语言
【C语言】printf() 和 scanf()
【C语言】printf() 和 scanf()
c中scanf函数注意点
c中scanf函数注意点
87 0
C语言第4弹-printf函数、scanf函数介绍
C语言第4弹-printf函数、scanf函数介绍
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值
|
C语言 数据安全/隐私保护
【C语言】getchar与scanf输入函数注意事项
【C语言】getchar与scanf输入函数注意事项
109 0
|
程序员 C语言
关于【C语言】中scanf与getchar的用法和常见错误详解1
关于【C语言】中scanf与getchar的用法和常见错误详解
159 0
|
编译器 C语言 数据安全/隐私保护
关于【C语言】中scanf与getchar的用法和常见错误详解 2
关于【C语言】中scanf与getchar的用法和常见错误详解
202 0