gpt4 book ai didi

c++ - 用户输入整数 - 错误处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:58 25 4
gpt4 key购买 nike

我在程序的某些输入区域遇到了一些问题。有几个部分是用户输入特定整数的地方。即使他们输入了错误的那一切都很好而且花花公子,但我注意到如果他们输入任何不是整数类型的东西,比如“m”,那么它将重复循环错误消息。

我有几个函数,其中有整数输入。这是一个示例。

void Room::move(vector<Room>& v, int exone, int extwo, int exthree, int current)
{
v[current].is_occupied = false;
int room_choice;
cout << "\nEnter room to move to: ";
while(true)
{
cin >> room_choice;
if(room_choice == exone || room_choice == extwo || room_choice == exthree)
{
v[room_choice].is_occupied = true;
break;
}
else cout << "Incorrect entry. Try again: ";
}
}

最佳答案

您“已解决”的代码中仍然存在问题。您应该在检查值之前检查 fail() 。 (很明显,存在 eof() 和 IO 失败的问题,而不是格式问题)。

地道阅读是

if (cin >> choice) {
// read succeeded
} else if (cin.bad()) {
// IO error
} else if (cin.eof()) {
// EOF reached (perhaps combined with a format problem)
} else {
// format problem
}

关于c++ - 用户输入整数 - 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1283302/

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