你的Download_File函数中
while (getline(fp, temp))
{
//其中getline(fp, temp) 只是把他读取到temp中 你应该再用你temp赋值给你的 St
}
int Student::Download_File()
{
// delete [] St; // You may need to delete previous data here.
St = new Student[100];
ifstream file("data.txt");
int i = 0;
while (file)
{
Student &s = St[i];
file >> s.name >> s.age >> s.no >> s.score[0] >> s.score[1] >> s.score[2] >> s.total >> s.average;
if (!file)
break;
i++;
}
Size = i;
return Size;
}
我感觉是fp的打开标志位有问题,ios::app是追加模式,如果文件存在则直接指向文件末尾,而不是开头,这个时候统计行数首先就是0,所以读不出数据。你把ios::app去掉试试