我在网上搜索如何使用scanf的返回值来检查文件的结尾!我发现了以下代码.但是我很难理解?
这种方法有用吗?
'〜'运算符表示什么?
while(~scanf("%d",&n)) {
/* Your solution */
}
Run Code Online (Sandbox Code Playgroud)
这是检查值是否与-1不同的可怕方法.~x返回按位的否定x.因此,考虑到用于负数的互补代码(顺便说一下大多数编译器,因此这种方法甚至不是非常便携)-1由1-s序列表示,因此~(-1)将产生零.
请不要使用这种方法.简单地写scanf("%d", &n) != EOF方式更容易理解.
| 归档时间: |
|
| 查看次数: |
7659 次 |
| 最近记录: |