c语言 while (~scanf("%d%d",&n,&m)) 在这里这个符号“~”是什么意思

按位取反,简单地说就是二进制1变0,0变1

由于scanf是有返回值的,且返回值为int型

特别的此处用法导致只有scanf返回-1,循环才会结束,也就是要返回EOF

 while (~scanf("%d%d",&n,&m))等效于 while (scanf("%d%d",&n,&m)!=EOF)
时间: 2024-11-05 20:37:50

c语言 while (~scanf("%d%d",&n,&m)) 在这里这个符号“~”是什么意思的相关文章

黑马程序员——C语言的scanf函数

一. 变量的内存分析 1. 字节和地址 1> 内存以“字节为单位”,Oxffc1,Oxffc2,Oxffc3,Oxffc4....都是字节 ,0x表示的是十六进制 2> 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多 2. 变量的存储 1> 所占用字节数跟类型有关,也跟编译器环境有关 2> 变量实例 #include <stdio.h> int main(){   //内存寻址由大到小 int a=10; int b=20;     printf("

【好程序员笔记分享】C语言之scanf函数的基本使用

ios培训------我的c语言笔记,期待与您交流! #include <stdio.h> int main() { // 定义一个变量,用来保存用户输入的整数 int number; // scanf函数只接受变量的地址 // scanf函数是一个阻塞式的函数,等待用户输入 // 用户输入完毕后,就会将用户输入的值赋值给number变量 // 函数调用完毕 scanf("%d", &number); printf("用户输入的值是%d\n",

【好程序员笔记分享】C语言之scanf函数的其他用法和注意

ios培训------我的c语言笔记,期待与您交流! #include <stdio.h> int main() { /* 1.输入字符 char myc; scanf("%c", &myc); printf("输入的字符是%c\n", myc); */ /* 2.一次性输入多个数值,并且以某些符号隔开 int num1, num2; scanf("%d#%d", &num1, &num2); printf(&

【学习笔记】【C语言】scanf函数

1. 简介 这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>.调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量 2. 简单用法 int age; scanf("%d", &age); scanf函数时,会等待用户的键盘输入,并不会往后执行代码.scanf的第1个参数是"%d",说明要求用户以10进制的形式输入一

C语言的scanf函数

一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房号,根据房号可以找到房间(根据地址也可以找到内存中的字节).相邻房间的房号是连续的,相邻字节的地址也是连续的.计算机中通常以十六进制表示地址. ②. 不同类型占用的字节是不一样的,数据越大则占用的字节数越多.如在64位编译器下,int类型占据4个字节,char类型占据1个字节. (二)变量的存

【C】将m~n之间的素数输出与VS2005以上版本对C语言的scanf的警告warning C4996

素数也叫质数,就是在大于1的自然数中,除了1和此整数自身外,不能被其他不包括0的自然数所整除的数, 需要注意的是,判断一个自然数n是否为质数,无须从1-n检验是否都能与此数整数,只需要用少于等于根号n的所有素数与此数试除即可,这样,每个数的检验的时间复杂度,足足减少了一半. C语言的实现代码如下: #include<stdio.h> #include<math.h> void main(){ int m,n; printf("输出从m到n的素数:\n"); pr

C语言 printf scanf

printf scanf [  ][  ][  ][  ][  ][  ][  ] 1 printf 输出字符串 printf(""); 输出控制符 控制符 说明 %d 输出"整型数" %ld 输出"长整型数" %c 输出"字符" %o 输出"8进制"数值 %x 输出"16进制"数值 %#X 输出带"0X"标志的16进制数字,大写 %#x 输出带"0x&qu

C语言之scanf

#include<stdio.h>int main(){int num;int a,b,c,result,d,result1;scanf("int%d",&num);//scanf 的东西必须是要输入的: 内容!!!a=num/100;b=num%10;c=num%100/10;d=num/10%10;printf("%d %d %d\n",a,b,c);result=b*100+c*10+a;result1=b*100+d*10+a;print

C语言-scanf函数补充

关于  scanf函数补充 1>关于"字符"与"整型数"混合输入的 <空格><逗号><回车>都是字符,输入的时候,字符前面不能有这些 2>关于"整型数"和"整型数"混合输入的 两个"整型数"在一块写,:必须要有<空格><逗号><回车>,不然就会被当成一个 例如:1和1,如果没有分割的话,就是11 3>以后项目实战中,全