我无法从.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;
}
答案 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
。