在C中,波浪符号的用处是什么?

在while循环中,若删去这个波浪号,则代码仍然可以运行,但却没有任何结果
img

代码出处是C primer Plus 第十四章课后练习题第六题。

fscanf如果遇到错误或者读到文件末尾会返回EOF(EOF的值为-1),波浪号是按位取反的意思,因为EOF=-1,按位取反就是0,无法进入while循环