我正在制作一个c ++游戏,用户必须输入一个int。如果玩家输入了一个角色,游戏就会出现故障。
而不是弄清楚这个故障是什么,我想知道玩家是否输入了一个字符并从那里开始工作。
答案 0 :(得分:3)
如果您使用cin来获取输入,最简单的解决方案如下:
int input;
cin >> input;
if (!cin)
//handle char not being an int
//continue
这背后的诀窍是,如果cin无法将输入转换为正确的类型,则它实际上会进入失败状态。但是,根据游戏的工作方式和输入的上下文,这可能不够。显然,如果您不使用cin,则必须检查您使用的流是否具有相同的行为。
答案 1 :(得分:0)
我不确定您使用的是什么形式的输入,但如果它是基于控制台的,则以下内容可能有所帮助:
答案 2 :(得分:0)
int x;
cout << "Enter an integer: ";
while (true) {
if (cin >> x) {
// integer
cout << x << " is a valid number!";
break;
} else {
// not an integer
cout << "Enter an integer: ";
cin.clear();
while (cin.get() != '\n') ;
}
}