C ++ - 如何将空格分隔的数字输入到数组中?

时间:2015-01-05 10:29:41

标签: c++ arrays

我有这个文件:

4
10 3 4 6

第一行声明第二行有多少个数字。我想把第二行的数字放在一个数组中。到目前为止,我一直在使用这个循环来自动声明第二行有多少个数字和多少次要做的循环:

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

using namespace std;

int main(){
    ifstream infile;
    infile.open("input.in");
    string kids;
    int x;
    int i;
    getline(infile,kids);
    cout << "The Number Of Kids Is " << kids << endl;
    istringstream buffer(kids);
    int kidss;
    buffer >> kidss;
    for(i=0;i<kidss;i++){
        infile >> x;
        cout << x << " ";
    }
    infile.close();
    return 0;
}

现在我想做同样的事情,但不是在x中输入数字我想把它们放在一个数组中,然后像上面那样显示它们。谢谢提前!

1 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法是使用std::vector这些是c ++中的可变长度数组。

在这种情况下使用它们你会做

std::vector<int> array;
for( int i = 0 ; i < kidss ; ++i ) {
    infile >> x;
    array.push_back(x);
}

然后,如果你想再打印出来,你就能做到

for( int i = 0 ; i < array.size() ; ++i ) {
    std::cout << array[i] << " ";
}