#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数组。 站阵列,是一个结构,我不允许改变它。目标是从文本文件中读取数字到数据数组中,然后将它们相应地放入工作站数组中。
技巧是站点阵列对每个元素有3个质量:例如,站点[1]必须有距离,到达时间和离开时间(所有正整数)。这也意味着站的数量将等于文本文件中的行数除以3。
我怀疑这可能是在没有数据数组的情况下完成的,但即便如此,我的代码一开始就陷入困境:它根本无法正确读取文件。我已经在这个论坛和其他人上阅读了一些文章,没有人帮助.... 上面的代码只是部分代码,请考虑任何未声明的元素,相应地在我的主代码中声明。
感谢您的帮助!
答案 0 :(得分:0)
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;
}