我发现了一个使用输入字符串并打印出来的代码。
但是我不知道波浪号在scanf之前是什么意思。
我发现波浪号既可以用于析构函数,也可以用于二进制求反,但是看起来两者都不一样。如果没有波浪号,代码将无法正常工作。
int main() {
char arr;
while (~scanf("%c", &arr)){
putchar(arr);
}
}
答案 0 :(得分:2)
我发现波浪号既可以用于析构函数也可以用于二进制求反,但是看起来两者都不一样。
这是bitwise NOT operator应用于scanf()
的返回值,如您稍后所述。
如果没有波浪号,代码将无法正常工作。
为@Mukul Gupta explained in their comment:
scanf
返回成功扫描的值的数量或EOF
如果到达文件末尾。EOF
是一个宏,代表一个 负值。在大多数平台上,EOF
的值为(int) -1
。 在这种情况下,取1的补数-1将使值成为0 并用于中断循环。