这是结构结构数组打印不正确| C++
struct Student{
char firstName[MAX_LEN + 1];
char lastName[MAX_LEN + 1];
float gpa;
};
因此,让我说,StudentList1具有正确的数据。
count Struct1是输入了多少个名字。
Student StudentList1[10];
int count5 = 0, countfName = 0, countlName = 0;
while(count5 < countStruct1)
{
while(StudentList1[count5].firstName[countfName] != '\0')
{
StudentList2[count5].firstName[countfName] =
StudentList1[count5].firstName[countfName];
countfName++;
}
while(StudentList1[count5].lastName[countlName] != '\0')
{
StudentList2[count5].lastName[countlName] =
StudentList1[count5].lastName[countlName];
countlName++;
}
StudentList2[count5].gpa = StudentList1[count5].gpa;
count5++;
}
现在,出于某种原因,当我尝试这个代码,而不是使用数组的姓氏和名字
while(count6 < count5)
{
cout << "Name: " << StudentList2[count6].firstName << " " << StudentList2[count6].lastName << "\n";
count6++;
}
现在的角色,当我尝试这样做,这样我只是得到一个一堆垃圾,我得到的第一个名字打印,但之后,一堆垃圾和姓氏太多,但只是垃圾之间。
这听起来像你的字符串不是null终止。例如'[B] [o] [b] [0]' – 2015-02-05 19:47:56
是否有另一个哨兵我可以选择不是null? – user3387140 2015-02-05 19:49:25
StudentList2中的名字和姓氏最后需要'\ 0'。在每个while循环出来之后这样做。 – Kamehameha 2015-02-05 19:49:40