gpt4 book ai didi

c++ - 如何处理错误的数据类型输入

转载 作者:IT老高 更新时间:2023-10-28 21:38:36 25 4
gpt4 key购买 nike

在 C++ 中,如何处理错误的输入?就像,如果程序要求输入一个整数,当你输入一个字符时,它应该能够做一些事情,然后循环重复输入,但是当你输入一个整数时,循环进入无限期,反之亦然。

最佳答案

程序进入无限循环的原因是std::cin的错误输入标志是由于输入失败而设置的。要做的是清除该标志并丢弃输入缓冲区中的错误输入。

//executes loop if the input fails (e.g., no characters were read)
while (std::cout << "Enter a number" && !(std::cin >> num)) {
std::cin.clear(); //clear bad input flag
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); //discard input
std::cout << "Invalid input; please re-enter.\n";
}

the C++ FAQ为此,以及其他示例,包括在条件中添加最小值和/或最大值。

另一种方法是将输入作为字符串获取并使用 std::stoi 或其他允许检查转换的方法将其转换为整数。

关于c++ - 如何处理错误的数据类型输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349857/

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