是否有使用cin.ignore(10000, '\n')
之类的替代方案?
例如,我要求一个名字,用户开始在一行上输入他的100页生活故事,而不是输入。没有办法确切地知道用户将继续使用多长时间,C ++中是否有一个捕获所有用户输入直到下一个提示?我一直在搜索,所有的建议都说在cin.ignore
参数中抛出一个任意大的数字。
是否有可靠的编码方式:
while cin.get(variable, #, delimiter) is in a fail state;
{
use cin.ignore() until there is nothing left in the buffer;
}
cin.clear()
谢谢!
答案 0 :(得分:0)
使用std::numeric_limits<std::streamsize>::max()
:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
答案 1 :(得分:0)
只需指定最大流大小
std::numeric_limits<std::streamsize>::max()
因为它是一个无符号类型,你可以牺牲显性来简洁,只需说-1
。