这是我的代码:
signed int x;
while (!(scanf("%d", &x) == 42)) {
std::cout << x << std::endl; }
return 0;
它应打印用户输入的任何数字,但42除外。如果用户输入42,则应忽略该数字或退出它,但它不起作用。我究竟做错了什么?
最佳答案
当您应该测试读取scanf
的值时,您正在测试x
函数的返回。
这样做:
signed int x;
while (scanf("%d", &x) > 0 && x != 42) {
std::cout << x << std::endl;
}
return 0;
它将首先读取用户输入,如果输入的是数字而不是42,则将进行打印。循环将一直持续到用户输入无效的输入(例如字母)或数字42为止。
关于c++ - while循环不起作用C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19837173/