C++ 如何在c++;

C++ 如何在c++;,c++,arrays,loops,break,C++,Arrays,Loops,Break,当我用一个数字定义一个整数数组,并且我想按ENTER键完成循环时,如何中断循环。 我测试了'\n'和'\r'和'\0'和>n[i]的结果检测无效输入(ENTER)并调用break。因为在实际读取任何内容之前,您正在检查n[i]的值。如果通过char(13)表示回车值,则使用实际正确的回车字符:'\r'。请尽量避免使用。使用std::vector并向后推。。使用while循环:inti;而(cin>>i)感谢您回答bro。但每次循环打开时我都会检查。另一件事是我不允许使用任何函数!我也试过了\r是

当我用一个数字定义一个整数数组,并且我想按ENTER键完成循环时,如何中断循环。 我测试了
'\n'
'\r'
'\0'
,但都不起作用! 例如(在这段代码中,我尝试使用ascii ENTER代码停止循环):

#包括
使用名称空间std;
int main()
{
int n[100];
对于(int i=0;i<100&&n[i]!=char(13);i++)
{
cin>>n[i];
}
返回0;
}

代码的行为未定义:您在编写之前从
n
中读取元素:
int n[100]={}是一个解决方案

这里的具体问题是,如果流中无法读取
int
,则需要检查
cin
的错误状态:使用类似
std::cin.fail()的方法


另外,不要硬编码字符值(大概这就是
char(13)
正在做的事情吧?),因为这样就不会编写可移植代码。使用
'\r'
&c。相反。

您可以更改代码
n[i]=字符(13)
to
n[i-1]=char(13)
,因为当您检查输入的值时,变量
i
已更改为
i++
,因此
n[i]
的值未定义,您将始终得到true。

考虑在循环中放置一个条件
break
语句。检查
cin>>n[i]的结果
检测无效输入(ENTER)并调用
break
。因为在实际读取任何内容之前,您正在检查
n[i]
的值。如果通过
char(13)
表示回车值,则使用实际正确的回车字符:
'\r'
。请尽量避免使用。使用std::vector并向后推。。使用while循环:
inti;而(cin>>i)
感谢您回答bro。但每次循环打开时我都会检查。另一件事是我不允许使用任何函数!我也试过了\r是我说的。这是我学到的非常好的东西/。(谢谢)但是循环仍然不会停止!
#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;
}