scwz.net
当前位置:首页 >> C语言 whilE (~sCAnF("%D%D",&n,&m)) 在这里这个符... >>

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)

scanf函数是有返回值的。 正常输入,返回成功读取的数据个数。 当读到文件结尾时,返回-1.【~(-1) = 0】 将两个语句用一个逗号拼成一个语句,最终语句的值等于最后一个逗号后面的语句的值。 即int a, b, c; c = ( a = 1, b = 2); 那么c = 2; ...

当你输入的不为Ctrl+Z,并且m或n的值小于等于0时你可以继续输入m和n的值。可以保证你输入的m和n都是大于0,才继续下一步。 在控制台要输入eof的话 按ALT+65535也可以了

EOF表示读到文件结束,n表示n!=0; 就是只要读入一个不为0的数,就执行while循环

输入n,m,没出错的话就继续循环

C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。 在我们一般的来说,就是读写数据到文件的结尾 EOF 其实又定义为-1 由于我们在控制台中读入数据根本无法读入到文件...

#include using namespace std; cin>>n>>m;

scanf("%d",&n) 如果正确读取输入的数据后 会返回一个参数,对于这个是返回1 ,如果没有返回就一直在while等待循环 从结果上看,两个是一样的

while(scanf("%d%d%d",&n,&k,&m)!=EOF) scanf返回的是成功读取并存储的变量的个数 当读到文件末尾的时候返回EOF 所以这个循环就是读取到文件末尾为止一直执行循环的意思

EOF在C语言宏定义中是-1也就是当输入的不等于-1的时候继续循环。 这样的输入方式,是acm吗?

网站首页 | 网站地图
All rights reserved Powered by www.scwz.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com