从字符串中检测数字而不是字母的方法.(目前使用istringstream)

Way to detect number rather than letter from string. (using istringstream currently)

本文关键字:方法 目前 istringstream 检测 字符串 数字      更新时间:2023-10-16

我做了一个简单的游戏程序,要求玩家有一个选项来撤消一些动作(撤消n)。

我让用户输入一个命令(撤消 n),它取下后半部分并将其放入一个整数中。 基本上,我希望程序在用户输入除数字以外的任何内容时停止用户。因此,如果用户输入撤消 f,它不会将 f 转换为它的数字形式(或者至少我认为它会这样做),但它会导致错误。我搜索了一段时间,找不到任何对我有用或有意义的东西。

try {
   int undo;
   istringstream is(userInput.substr(5, userInput.length()));
   is >> undo;
   for (int numOfUndos = undo; numOfUndos > 0; numOfUndos--) {
      board.UndoLastMove();
   }
   moveValidated = true;
}
catch (exception &e) {
   cout << "/-----------------------------/" << endl;
   cout << e.what() << endl;
   cout << "/-----------------------------/" << endl;
}

如果可能的话,我想只使用我目前拥有的方式或与 cin。另外,请原谅我,但我仍在学习C++并且不知道很多高级技术,所以如果有复杂的方法可以做到这一点,请原谅我是否需要我一点才能理解。

提前感谢您的任何帮助。

这对

我有用。再次感谢。

游戏描述与您的问题并不真正相关:如何 将字符串转换为整数并检查它是否失败。为此, 如果 (是>>撤消) { 工作 } 否则 { 失败 } 撤消最后移动是否抛出 例外?- 尼尔柯克