while(~scanf("%s",s)){} 请用国语翻译下是什么意思?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 20:30:30

while(~scanf("%s",s)){} 请用国语翻译下是什么意思?
while(~scanf("%s",s)){} 请用国语翻译下是什么意思?

while(~scanf("%s",s)){} 请用国语翻译下是什么意思?
这段代码是循环从标准输入读取字符串到s中一直到读完(EOF)为止,等同于
while (scanf("%s",s) != -1) {}
~运算符在C里面是按位取反的意思,这样的话~x值为0的条件就是所有位全部为1,对于整数(int)来说,就是-1了,而-1实际上就是EOF.
通常如果标准输入被重定向从文件读入,那么就是文件读完,如果没有被重定向过,那么通常就是按了ctrl+C终止程序