为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C C#
梵蒂冈之花 2021-02-23 19:15:26
它们不是一样的么??为什么在hdu上用while(~scanf("%d%d",&n,&m))的结果是0_0_10758670_8400.c0_0_10758670_8400.c(23) : fatal error C1075: 与左侧的 大括号“{”(位于“0_0_10758670_8400.c(3)”)匹配之前遇到文件结束但是换成while(scanf("%d%d",&n,&m)!=EOF)就对了?
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

如:
  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 右移一位 再赋值 

查看完整回答
反对 回复 2021-03-16
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

按照
scanf("%d,%d", &a, &b); 的定义来讲,也应该是相等。
只有 返回值为EOF 的时候 ~EOF 才能为0 其余 都不会。

查看完整回答
反对 回复 2021-03-16
  • 2 回答
  • 0 关注
  • 452 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信