gpt4 book ai didi

c++ - 在 C++ 中多次获取输出

转载 作者:行者123 更新时间:2023-12-01 22:56:44 25 4
gpt4 key购买 nike

#include <iostream>

int main() {
int fav_num {0};
bool in_range {false};

while (in_range == false) {
std::cout << "Enter your favorite number between 1 and 100: ";
std::cin >> fav_num;

if (fav_num < 1 || fav_num > 100 || !std::cin ) {
std::cout << "===Ops!, invalid choice, please try again.===" << std::endl;
std::cin.clear();
std::cin.ignore();
}
else {
std::cout << "Amazing!! That's my favorite number too!" << std::endl;
std::cout << "No really!!, " << fav_num << " is my favorite number!" << std::endl;
in_range = true;
}
}
std::cout << "==================================================" << std::endl;
return 0;
}

为什么我会多次获得输出?

screenshot

最佳答案

一次q ,一次 w ,一次 e .

检查文档中的 std::basic_istream::ignore 。如果没有参数,它只会跳过一个字符,因此您的循环将在再次接受新输入之前遍历每个字符一次。

您想要std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');忽略每个字符直到下一行。

关于c++ - 在 C++ 中多次获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58177526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com