scanf 前面加一个~是什么意思?

2014 年 8 月 18 日
 razrlele
就像这样
while(~scanf("%d", &c))
3358 次点击
所在节点    问与答
3 条回复
GtDzx
2014 年 8 月 18 日
~是按位取反 ~(-1) = 0
这条语句就是scanf()返回-1的时候不进入循环,返回其他值时进入循环。而-1恰好是EOF的值,所以就是没读到文件结束就进循环。
wisatbff
2014 年 8 月 18 日
绝壁非主流写法
yangff
2014 年 8 月 18 日
多组数据读到文件结束最常用的写法。
其次是while (scanf("%d",&n)!=EOF)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/128561

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX