如何从文本文件读取int数组,在c + +中?
问题描述:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <fstream>
struct specific {int distance; int arrive_time; int depart_time;};
int maxn=100;
ifstream File("c:\\data.txt");
if (!File.is_open())
{
cout << "Unable to open file!";
exit(-1);
}
else
{
int l;
string rows;
while (getline(File,rows)){
++l;}
int data[l];
if (l>maxn)
{
cout << "Too much data!";
File.close();
exit(-1);
}
else
{
int i=1;
while (!File.eof() && i<=l)
{
Filel >> data[i];
i++;
}
if (i!=l)
{
cout << "Inconsitent File!";
File.close();
exit(-1);
}
}
};
Fajl.close();
n = l/3;
specific station[n];
int j=1;
do{
for (int i=; i<=l; i+=3){
data[i] == station[j].distance;
data[i+1] == station[j].arrive_time;
data[i+2] == station[j].depart_time;
j++;}}
while (j<=n);
}
我是全新的C++和编程。我的目标是 - 部分地打开给定的文本文件,其中包含数字,每行一个数字(除此之外)。我需要将这些最终读入到名为station [n]的数组中。为此,我在File和目标(站)数组之间放置了一个int数组。 station数组是一个结构体,我不允许改变它。目标是将文本文件中的数字读入数据数组,然后将它们从那里放入数组中。如何从文本文件读取int数组,在c + +中?
诀窍是,电台阵列有3个品质的每个元素:例如station [1]必须有距离,arri_time和depart_time(所有正整数)。这也意味着站点的数量将等于文本文件中的行数除以3.
我怀疑这可能是在没有数据数组的情况下完成的,但即使如此,我的代码仍然停留在一开始:它根本无法正确读取文件。我读过这个论坛上的一些文章,以及其他人,没有帮助...... 上面的代码只是一个部分,请考虑任何未声明的元素,相应地在我的主代码中声明。
感谢您的帮助!
答
2014年C++不害怕使用标准库和载体:
#include <fstream>
#include <vector>
int main()
{
std::vector<int> data;
std::ifstream DataFile("c:\\data.txt");
if (DataFile)
{
int value;
// read the elements
while (DataFile >> value)
{
data.push_back(value);
}
}
return 0;
}
+0
此代码不起作用。 – 2016-10-14 18:40:32
请缩进代码。第二:'int data [l];'不是合法的C++,因为'l'是一个变量。如果您正在学习C++,请关闭编译器给您的扩展,并在没有它们的情况下学习语言。 – PaulMcKenzie 2014-11-08 19:11:17
为什么你不格式化你的代码? – 2014-11-08 23:15:42