scanf()仅将第一个整数作为数组

时间:2019-03-20 19:52:53

标签: c++

我正在编写一个程序来对用户输入的数组进行排序。以下代码需要输入8个单位整数,然后将其放入数组中。

#include <iostream>
#include <stdio.h>

using namespace std;

void printArray(int ary[], int n) {
    cout << "The sequence you entered is as follows:" << endl;
    for (int i=0; i<n; i++) {
        cout << ary[i] << " ";
    }
    cout << "\n";
}

int main() {
    using namespace std;

    int nums[8];

    cout << "Please enter 8 single digits between 1 and 9" << endl;
    for(int k=0; k<8; k++) {
        scanf("%d", &nums[k]);
    }

    printArray(nums, 8);

    cout << endl;
    return 0;
}

但是当我输入数字时,只有第一个整数被压入数组,其余为0。 例如,当输入为: 2,5,7,2,1,4,6,8。输出为:2 0 0 0 0 0 0 0

1 个答案:

答案 0 :(得分:2)

您应使用的输入语法如下:2 5 7 2 1 4 6 8。 或者您可以将scanf("%d", &nums[k]);更改为scanf("%d,", &nums[k]);,现在您可以输入2,5,7,2,1,4,6,8