#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using std::vector;
using namespace std;
class dataLine
{
double time;
int id;
int inten;
int cov;
int type;
void copyDataLine(dataLine *dat2)
{
time = dat2->time;
/*inten = dat2->inten;
cov = dat2->cov;
type = dat2->type;*/
return;
}
};
class findLines
{
private:
int lines;
ifstream datFile;
string line;
public:
int countLines()
{
lines = 0;
datFile.open("precipitation.txt");
if (datFile.good())
{
while (!datFile.eof())
{
getline(datFile, line);
lines++;
}
}
return lines;
}
};
void readData(dataLine *datLine_one[], dataLine *datLine_two[], dataLine *datLine_three[], dataLine *datLine_four[])
{
fstream datFile;
dataLine *datLine = new dataLine;;
*datLine = dataLine();
datFile.open("precipitation.txt");
int count[]{ 0 ,0, 0, 0, 0 };
while (!datFile.eof())
{
datFile >> datLine->time;
datFile >> datLine->id;
datFile >> datLine->inten;
datFile >> datLine->cov;
datFile >> datLine->type;
if (datLine->id == 1)
{
datLine_one[count[1]]->copyDataLine(datLine);
count[1]++;
}
/*else if (datLine->id == 2)
{
datLine_two[count[2]]->copyDataLine(datLine);
count[2]++;
}*/
/*if (datLine->id == 3)
{
copyDataLine(datLine_three[count[3]], datLine);
count[3]++;
}
if (datLine->id == 4)
{
copyDataLine(datLine_four[count[4]], datLine);
count[4]++;
}*/
}
return;
}
int main()
{
findLines precip;
int lineNum = precip.countLines();
int datNum = lineNum / 4;
dataLine *datLine_1 = new dataLine[datNum];
dataLine *datLine_2 = new dataLine[datNum];
dataLine *datLine_3 = new dataLine[datNum];
dataLine *datLine_4 = new dataLine[datNum];
readData(&datLine_1, &datLine_2, &datLine_3, &datLine_4);
system("pause");
return 0;
}
This code is set to read in data from a file, and store it in different arrays based on the IDs of the data (five columns and 33317 rows). The variables are shown to be assigned successfully if I step through the code in Visual Studio, but when I try to debug it, an exception occurs when the copyDataLine function is called.