0

从控制台读取输入

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

COL_WIDTH是 80 通过为什么默认终端宽度是 80 个字符来确定?. 我应该假设一个 80 个字符的控制台宽度还是一个任意更大的数字更适合cin.ignore

4

1 回答 1

2

您可以输入多行字符,即使是 80 个字符。
请改用std::numeric_limits<std::streamsize>::max()

于 2013-04-08T13:08:52.000 回答