繁体   English   中英

while循环不起作用C ++

[英]while loop not working C++

这是我的代码:

signed int x;
while (!(scanf("%d", &x) == 42)) {
std::cout << x << std::endl; }
return 0;

它应该打印用户输入的任何数字,但42除外。如果用户输入42,则应忽略该数字或退出它,但是它不起作用。 我究竟做错了什么?

当您应该测试read x的值时,您正在测试scanf函数的返回。

这样做:

signed int x;
while (scanf("%d", &x) > 0 && x != 42) {
    std::cout << x << std::endl;
}
return 0;

它将首先读取用户输入,如果输入的是数字而不是42,则将进行打印。 循环将一直持续到用户输入无效的输入(例如字母)或数字42为止。

scanf不会返回您认为返回的内容,请查找

阅读scanf文档:不返回值,它在x变量内

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM