在C ++中使用txt文件填充数组

时间:2018-01-21 17:38:08

标签: c++

我无法从.txt文件填充数组。如果我已经知道文件的大小,我可以在没有while循环的情况下完成。但是,一旦我合并了一个while循环来提取文件大小,输入odes就无法正确配置。请仔细看看我的代码,如果你知道我哪里出错了,请告诉我。

#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <string>
#include <fstream>

int main()
{
    using namespace std;
    const char *inName_1 = "Instance_1.txt";
    const char *inName_2 = "Instance_2.txt";
    int arraySize_1 = 0, arraySize_2 = 0;
    int array_1[20];
    int array_2[20];
    int number;

    ifstream A2_file_1(inName_1);

    if (A2_file_1.fail())
    {
        cout << "File 1 not open!" << '\n';
    }

    while (!A2_file_1.eof())
    {
        arraySize_1++;
        A2_file_1 >> number;
    }

    if (A2_file_1.is_open())
    {
        for (int i = 0; i < arraySize_1; i++)
        {
            A2_file_1 >> array_1[i];
        }

        A2_file_1.close();
    }

    cout << "The size of the array 1 is: " << arraySize_1 << endl;

    for (int i = 0; i < arraySize_1; i++)
    {
        cout << array_1[i] << endl;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

要从文本文件中读取任意数量的数值,您只需要std::vector和几个std::istreambuf_iterator个对象。

然后就像

一样简单
std::ifstream input("Instance_1.txt");

std::vector<int> values(std::istreambuf_iterator<int>(input),
                        std::istreambuf_iterator<int>());

就是这样。这四行代码(计算空行)将读取文本文件int中的所有Instance_1.txt值,并将它们放入向量values