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)<< " ";
}