从控制台读取输入
if(std::cin){
decision = std::cin.get();
if(std::cin.eof())
throw CustomException("Error occurred while reading input\n");
}else{
throw CustomException("Error occurred while reading input\n");
}
清除流上的剩余输入
std::cin.ignore(COL_WIDTH, '\n'); // skip bad input
通过Why is the default terminal width 80 characters?确定 COL_WIDTH
为80。我应该假设一个80个字符的控制台宽度,还是一个更适合cin.ignore
的任意大号?
答案 0 :(得分:2)
您可以输入多行字符,即使它是80
请改用std::numeric_limits<std::streamsize>::max()
。