我将尝试在此程序中将一个 .txt 文件读入到一个结构体数组中,并显示其内容。
该文件的格式如下:
我正在运行的代码:
我所得到的输出:
该文件的格式如下:
Smith Jack 60 45 98
Harry Hisk 45 40 78
Kay Jacob 35.5 23 45
Dos hed 23 20 35
Noa Tom 55 12 32
Joe Peni 57 49 78
Vin San 25.6 23 65.5
Jes Dan 24.3 12 78
Zi Lee 56 49 99
Angi Dev 57 48 97
Donald David 60 50 96
Davis Lal 47 47 80
Alvis Sen 56 46 85
Jack Jill 45 45 75
Messy Lionel 60 49 100
我正在运行的代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(){
const int SIZE=50;
int i;
struct Records {
string firstname;
string secondname;
float test1mark;
float midtestmark;
float annualmark;
}record[SIZE];
ifstream in("Data.txt");
if (!in){
cerr << "File can't be opened! " << endl;
system("PAUSE");
exit(1);
}
for (int i=0; i < SIZE; i++){
in >> record[i].firstname >> record[i].secondname
>>record[i].test1mark >> record[i].midtestmark >> record[i].annualmark ;
}
for (int i=0;i< SIZE;i++) {
cout << record[i].firstname<<" ";
cout << record[i].secondname<<" ";
cout << record[i].test1mark<<" ";
cout << record[i].midtestmark << " ";
cout << record[i].annualmark << " ";
}
return 0;
}
我所得到的输出:
Smith Jack 60 45 98
Harry Hisk 45 40 78
Kay Jacob 35.5 23 45
Dos hed 23 20 35
Noa Tom 55 12 32
Joe Peni 57 49 78
Vin San 25.6 23 65.5
Jes Dan 24.3 12 78
Zi Lee 56 49 99
Angi Dev 57 48 97
Donald David 60 50 96
Davis Lal 47 47 80
Alvis Sen 56 46 85
Jack Jill 45 45 75
Messy Lionel 60 49 100
nan 0 8.94237e-039
4.36192e-039 0 -2.3511e-038
0 0 -2.3511e-038
0 0 0
1.32253e-038 0 1.32251e-038
4.2039e-045 0 -2.11122e+037
1.32251e-038 0 3.21276e-039
1.4013e-045 0 -2.3511e-038
1.4013e-045 0 3.76158e-037
0 0 3.76158e-037
0 0 1.12104e-044
4.36195e-039 0 4.36194e-039
3.57331e-043 0 6.0615e-039
0 0 3.21276e-039
4.2039e-045 0 6.41272e-039
1.12104e-044 0 6.63812e-039
4.36205e-039 0 -2.75237e+038
0 0 6.59812e-039
6.63426e-039 0 1.4013e-045
0 0 6.47961e-039
3.21319e-039 0 3.21319e-039
6.59812e-039 0 3.21299e-039
8.40779e-045 2.24208e-044 6.01433e-039
6.6045e-039 0 2.54408e-029
0 0 6.6045e-039
0 0 6.43946e-039
5.88656e-039 0 -4.12495e+011
0 0 0
5.88656e-039 0 2.54408e-029
nan nan 6.43029e-039
0 0 0
5.93823e-039 0 -4.12495e+011
0 0 0
5.93823e-039 0 5.74532e-044
nan nan 5.93837e-039
进程在0.05447秒后以返回值0退出
按任意键继续. . .
有人能告诉我它的问题在哪里吗?我尝试使用指针,但情况变得更糟了。 -初学者
for (int i=0; i < SIZE; i++){
-- 你怎么知道要读取50个数据项? - PaulMcKenzie