c语言 while (~scanf("%d%d",&n,&m)) 在这里这个符号“~”是什么意思

按位取反,简单地说就是二进制1变0,0变1

由于scanf是有返回值的,且返回值为int型

特别的此处用法导致只有scanf返回-1,循环才会结束,也就是要返回EOF

while (~scanf("%d%d",&n,&m))等效于 while (scanf("%d%d",&n,&m)!=EOF)
原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/3961684.html