【发布时间】:2014-09-08 07:12:51
【问题描述】:
我知道这是一个常见问题,但如果不使用向量和 ctrl + d/c,我找不到任何解决方案。我在使用 cin 获取未知数量的整数时遇到了无限循环。即使在按下输入后,while 循环也不会停止执行。非常感谢!
while(cin >> num)
{
num--;
sizeB = 0;
setB[sizeB] = num;
sizeB++;
}
cin.ignore();
cin.clear();
【问题讨论】:
-
空格在格式化输入操作中被忽略。换行符是空格。也许您想改用
getline? -
如果
num是一个整数而不是输入字母并按Enter 将导致循环退出 -
@MarcoA 条件是
cin。 (operator>>返回对cin的引用)。相当于做!cin.fail(),即检查没有出现文件结尾,也没有输入的内容未能转换为num的类型。 -
@Zeta 很抱歉,我无法使用 getline,就像我使用 get line 一样,它会将所有值作为一个句子读取。
-
@MattMcNabb 我不习惯这个用例,这绝对是真的 (cplusplus.com/reference/ios/ios/operator_bool)。准确地说
'does not return the same as member good, but the opposite of member fail'
标签: c++ while-loop cin infinite