【发布时间】:2014-06-03 09:11:07
【问题描述】:
我想从文件中读取两件事,全名(名字和姓氏) 和年龄。之后,我想将它们存储在一个数组中,然后打印数据。 但是,当我尝试读取第一条记录时是 read find,而其他两条则不是。 请告诉我我错过了什么。 谢谢。
文件内容为:
sampleFirst1 sampleLast1
30
sampleFirst2 sampleLast2
25
sampleFirst3 sampleLast3
40
输出是:
Name: sampleFirst1 Age: 30
Name: Age: 30
Name: Age: 30
这是我的代码:
#include "Person.h"
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream inputFile("data.txt", ios::in);
string full_name;
int age = 0;
int i = 0;
Person personArray[3];
while (i < 3)
{
getline(inputFile, full_name);
personArray[i].set_name(full_name);
inputFile >> age;
personArray[i].set_age(age);
++i;
}
inputFile.close();
printData(personArray, 3);
cout << endl;
return 0;
}
【问题讨论】:
-
你为每一行增加 i,而不是为每个人。
-
'getline(inputFile, full_name);'您是否正在尝试将一行文本读入 int ?那是怎么编译的?
-
对不起,这不是我刚刚更正类型的重点。
-
sdotdi,你是什么意思?你能澄清更多吗?