如何忽略用户输入的第二个字母

时间:2019-05-08 07:09:45

标签: c++ char getline ignore

我这里有一个主菜单,要求用户选择。问题在于,每当用户输入“ AB”,“ BC”之类的“选择”时,由于程序读取了“(A)B”或“(B)C”,它都会前进到另一部分。如果用户输入这样的选项,我会弹出错误提示 enter image description here

1 个答案:

答案 0 :(得分:0)

将整个行作为字符串读取,测试其大小,如果大于1,则报告错误。

#include <iostream>
#include <string>

int main() {
  std::cout << "Enter A, B or C\n";
  std::string line;
  std::getline(std::cin, line);
  if (line.size() > 1)
  {
    std::cerr << "Invalid input\n";
    return -1;
  }
  std::cout << "Your option is " << line << std::endl;
  return 0;
}
  

输入A,B或C

     

ABBBBBBBBB

     

无效输入

     

退出状态255