c++ - 我在 C++ 中遇到问题从函数中的用户输入,添加到数组,并打印该数组

标签 c++ arrays function user-input

我正在学习 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/

相关文章:

php - 讲述函数是如何被调用的

c# - Java 线程创建性能 vs C# 线程创建性能 vs C++( native 线程)?

xcode 中的 c++ : error when calling any(! !!!) 来自 main 中自定义对象的方法

c++ - 找不到库。尝试编译包含 Lapack (C++) 的程序

c++ - 如果在 C++ 中的 malloc() 之后调用 free() 会出错

javascript - react : filter array: Can I work with elements that didn't pass the test?

java - 数组的删除算法

postgresql - 从存储的事件开始和结束时间中获取空闲时间

javascript - 在coffeescript中调用多维数组

python - timeit.timeit变量在python中导入