【发布时间】:2020-07-18 19:16:54
【问题描述】:
我正在读取包含此数据的文件:
0001 Howard Paredes Zegarra Computacion
0002 Penny Vargas Cordero Industrial
0003 Sheldon Cooper Quizpe Mecatronica
我的 cpp 文件是这样的:
struct Alumno {
char codigo[5];
char nombre[12];
char apellidos[20];
char carrera[15];
};
istream& operator >> (istream &stream, Alumno &record)
{ stream.read(record.codigo, 5);
stream.read(record.nombre, 12);
stream.read(record.apellidos, 20);
stream.read(record.carrera, 15);
stream.get();
return (stream);
}
vector<Alumno> load() {
ifstream file("datos.txt");
vector<Alumno> students;
while (!file.eof()) {
Alumno student = Alumno();
file >> student;
students.push_back(student);
}
file.close();
return (students);
}
int main() {
auto students = load();
for (auto student : students) {
string nombre = student.nombre;
cout << nombre << endl;
}
return (0);
}
所以问题是当打印变量“nombre”时打印整行减去第一列。 预期输出:
Howard
Penny
Sheldon
但是当前的输出是:
Howard Paredes Zegarra Computacion
Penny Vargas Cordero Industrial
Sheldon Cooper Quizpe Mecatronica
为什么我有这个输出,我的结构中的指针字符是否有问题,任何建议都会很棒。提前致谢。 注意:我不能在这个任务中使用字符串。
【问题讨论】: