我正在学习 C++,我试图让用户在一个函数中输入 4 个数字,然后简单地打印数组。
int getFourNums();
int main(int argc, char** argv){
int getNums;
getNums = getFourNums();
cout << "The array is: " getNums << endl;
}
int getFourNums(){
int i;
int myArray[4];
cout << "Enter 4 nums: ";
for(i = 0; i < 4; i++){
cin >> myArray[i];
}
return myArray[i];
到目前为止,它让我得到了四个数字,但打印的结果是“数组是:0”。我不太确定为什么数组似乎没有填充。
最佳答案
您的根本问题是 int getFourNums()
只能返回一个单个 整数,而不是它们的数组。下一个问题是由于历史原因,函数不能返回原始数组。您的选择是返回一个 std::array
,一个包含数组的 struct
,通过引用将数组传递给函数,或者返回一个 std::vector
。我对这个应用程序的偏好是 std::vector
- 它很灵活,虽然不如 std::array
高效,但你应该默认使用 std::vector
除非你有充分的理由。您的 getNums
代码将如下所示:
std::vector<int> getFourNums() {
std::vector<int> result;
cout << "Enter 4 nums: ";
for(int i = 0; i < 4; i++){
int v;
cin >> v;
result.push_back(v);
}
return result;
}
要打印 vector ,请参阅 this question .我个人的偏好是对 vector 进行基于范围的 for 循环;您的口味可能会有所不同。
关于c++ - 我在 C++ 中遇到问题从函数中的用户输入,添加到数组,并打印该数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543690/