猿问

求助求助~scanf()和scanf()!=EOF的区别?

它们不是一样的么??
为什么在hdu上用
while(~scanf("%d%d",&n,&m))
的结果是
0_0_10758670_8400.c
0_0_10758670_8400.c(23) : fatal error C1075: 与左侧的 大括号“{”(位于“0_0_10758670_8400.c(3)”)匹配之前遇到文件结束
但是换成while(scanf("%d%d",&n,&m)!=EOF)就对了?

梵蒂冈之花
浏览 473回答 2
2回答

慕标琳琳

如:  scanf("%d,%d", &a, &b);  如果a和b都被成功读入,那么scanf的返回值就是2  如果只有a被成功读入,返回值为1  如果a和b都未被成功读入,返回值为0  如果遇到错误或遇到end of file,返回值为EOF。你上边的两个都是看返回值来判断的 至于while(~scanf("%d",&n)) 没用过t>>=1 即t = t >> 1 右移一位 再赋值 

繁星点点滴滴

按照scanf("%d,%d", &a, &b); 的定义来讲,也应该是相等。只有 返回值为EOF 的时候 ~EOF 才能为0 其余 都不会。
随时随地看视频慕课网APP
我要回答