C++ 在C++;

C++ 在C++;,c++,C++,将空格分隔的输入读取到数组中最简单的方法是什么 //input:5 1 2 3 4 7 int main() { int n; cin>>n; int array[n]; for (int i =0;i<n;i++){ cin>>array[i]; } cout<<array; return 0; } //输入:5 1 2 3 4 7 int main(

将空格分隔的输入读取到数组中最简单的方法是什么

//input:5
        1 2 3 4 7



int main() {
    int n;
    cin>>n;
    int array[n];
    for (int i =0;i<n;i++){
        cin>>array[i];
    }
    cout<<array; 
    return 0;
}  
//输入:5
1 2 3 4 7
int main(){
int n;
cin>>n;
整数数组[n];
对于(int i=0;i>array[i];
}

cout问题在于打印。由于
array
是指针,所以只打印地址值

相反,请执行以下操作:

for (int i =0;i<n;i++){
    cout<< array[i] << " ";
}

for(inti=0;i您可以通过将
std::istream\u迭代器传递给
std::vector
构造函数来实现这一点:

std::vector<int> v{
    std::istream_iterator<int>{std::cin}, 
    std::istream_iterator<int>{}
    };

数组变量始终提供数组的基址

for (int i =0;i<n;i++){
    cout<< array[i] << " ";
    cout<<*(array+i)<< " ";
}

for(int i=0;iDefine
不起作用
。这是对问题最无用的描述。“它不起作用”没有告诉我们任何事情。实际发生了什么?它崩溃了吗?它是否将所有内容读取到数组的第一个元素中?其他什么?另一方面,我注意到了问题(我想)可变长度数组不是标准C++。考虑使用代码> STD::向量< /代码>。Fuy猜测:输出被混淆,并将错误归咎于错误的部分。<代码>可能的复制非常感谢。这是问题。自从我从Python变为C++ C++以来,我有过很多问题。这使您不必使用固定大小的数组。在我的示例中,您可以放置任意大小的输入字符串。这是一个很酷的构造,您能解释它的确切功能吗?@Chiel为您添加了引用。我无法运行此操作。如果我将此操作放入示例中,它将永远不会停止请求输入。您的示例与clang不兼容。它永远不会结束这个cin@Chiel使用,看。@O'Neil你是对的。我知道但错过了。谢谢你发现了那个错误
for (int i =0;i<n;i++){
    cout<< array[i] << " ";
    cout<<*(array+i)<< " ";
}