如何打破循环以获取c ++

时间:2017-12-07 09:27:04

标签: c++ arrays loops break

当我用数字定义一个整数数组时,如何断开循环,我想通过按 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;
}

2 个答案:

答案 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]的值未定义,您将永远变为现实。