4

c++でファイルから整数の配列に整数を読み取るにはどうすればよいですか? たとえば、このファイルの内容は次のようになります。

23
31
41
23

次のようになります。

int *arr = {23, 31, 41, 23};

?

実はこれには2つの問題があります。まず、行ごとにどのように読むことができるか本当にわかりません。1 つの整数の場合は非常に簡単file_handler >> numberです。構文だけで十分です。これを行ごとに行うにはどうすればよいですか?

私にとって克服するのがより難しいと思われる2番目の問題は、このことのためにメモリをどのように割り当てる必要があるかということです。:う

4

4 に答える 4

2

配列使用ベクトルを使用しないでください。

#include <vector>
#include <iterator>
#include <fstream>

int main()
{
    std::ifstream      file("FileName");
    std::vector<int>   arr(std::istream_iterator<int>(file), 
                           (std::istream_iterator<int>()));
                       // ^^^ Note extra paren needed here.
}
于 2013-04-20T17:33:55.587 に答える
1

これを行う1つの方法は次のとおりです。

#include <fstream>
#include <iostream>
#include <iterator>

int main()
{
    std::ifstream file("c:\\temp\\testinput.txt");
    std::vector<int> list;

    std::istream_iterator<int> eos, it(file);

    std::copy(it, eos, std::back_inserter(list));

    std::for_each(std::begin(list), std::end(list), [](int i)
    {
        std::cout << "val: " << i << "\n";
    });
    system("PAUSE");
    return 0;
}
于 2013-04-20T17:24:31.480 に答える