当我用数字定义一个整数数组时,如何断开循环,我想通过按 ENTER 完成循环。
我测试 '\n'
和 '\r'
和 '\0'
和 char(13)
< / strong>和 NULL
但没有奏效!
例如(在此代码中我尝试使用 ENTER 的ascii代码停止循环):
#include <iostream>
using namespace std;
int main()
{
int n[100];
for (int i = 0; i < 100 && n[i]!=char(13); i++)
{
cin >> n[i];
}
return 0;
}
答案 0 :(得分:3)
您的代码的行为是未定义:您在编写之前从<{1}}读取元素:n
是对此的修复。
您的具体问题是,如果无法从流中读取int n[100] = {};
,则需要检查cin
的错误状态:使用int
之类的内容。
另外,不要硬编码字符值(大概是std::cin.fail()
正在做什么?),因为那样你就不会编写可移植的代码了。使用char(13)
&amp; c。代替。
答案 1 :(得分:0)
您可以将代码n[i]!=char(13)
更改为n[i-1]!=char(13)
,因为当您检查输入的值时,变量i
已更改为i++
,因此n[i]
的值未定义,您将永远变为现实。