使用类创建许多的个unsigned int类型成员,并使用stringstream将文件中的数据传入类中,文件中的数字数据全部成功转为unsigned int类型数据存入,stuarr为创建的自定义类型数组(此次成功读取到数据并存入数组中)
this->stuarr = new Student [this->datasum];
fstream ifs;
ifs.open(FILENAME, ios::in);
string temp;
getline(ifs, temp);//除去首行
int index = 0;
while (!ifs.eof())//判断文件是否读取完
{
char data[1024];
ifs.getline(data, 1024);
//跳过空行
if (strlen(data) == 0)
break;
stringstream ss(data);
ss >> stuarr[index].number >> stuarr[index].name >> stuarr[index].English >> stuarr[index].Marx >> stuarr[index].Politics >> stuarr[index].Geogle >>
stuarr[index].Metorlogy >> stuarr[index].Math >> stuarr[index].Physics_test >> stuarr[index].Physics >> stuarr[index].Algebra >> stuarr[index].Math_analysis >>
stuarr[index].MATLAB >> stuarr[index].Math_logic >> stuarr[index].Measure_practice >> stuarr[index].C;
index++;
}
//关闭文件
ifs.close();
为了减少代码的量,准备将文件中的数据存入一个二维数组中,不再创建自定义类型数组,定义以下二维数组
using uint = unsigned int;
uint** dataarr;
dataarr = new uint* [datarow];
for (int i = 0; i < datarow; i++)
{
dataarr[i] = new uint[dataline - 2];
}
fstream ifs;
ifs.open(FILENAME, ios::in);
string temp;
getline(ifs, temp);//除去第一行
int index = 0;
while (!ifs.eof())//判断文件是否读取完
{ char data[1024];
ifs.getline(data, 1024);
//跳过空行
if (strlen(data) == 0)
break;
stringstream ss(data);
ss >> this->numberarr[index];
ss >> this->namearr[index];
for (int i = 0; i < dataline - 2; i++)
{
ss >> dataarr[index][i];
}
}
//关闭文件
ifs.close();
但使用二维数组却无法将文件中的数据转为unsigned int型
求解惑