打印字符数组到文本文件,性别那个数组会把下一个数组的内容包括进来,输入的时候是按了回车的,调试的时候发现性别那个数组没有结束符,请问各位怎么解决?
这是输入的代码:
Status Importlist(Link& L, int n) //n为要输入的链表中的结点个数
{
if (n <= 0)
{
cout << "学生个数错误!" << endl;
return error;
}
int i;
LinkList p; //p为结构体指针
for (i = 1; i <= n; i++)
{
p = new LNode[1];
cout << i << "、" << endl;
cout << "姓名:"; cin >> p->data.name;
cout << "年龄:"; cin >> p->data.age;
cout << "学号:"; cin >> p->data.num;
cout << "性别:"; cin >> p->data.sex;
cout << "籍贯:"; cin >> p->data.place;
p->next = NULL; L.tail->next = p; L.tail = p;
L.length++;
system("cls"); //清屏
}
cout << "此时的学生的数量为:" << L.length << endl;
return OK;
}//初始化学生信息
这是打印数组到文本文件的代码:
Status Writelist(Link L)
{
if (L.head->next == NULL)
{
cout << "错误,无法存储数据!" << endl;
return error;
}
FILE* fp;
errno_t err;
LinkList p = L.head->next;
if ((err = fopen_s(&fp, "test", "w")) != 0)
{
printf("error,cannot open this file\n");
return error;
exit(1);
}
while (p != NULL)
{
fprintf(fp, "%s (后面还有54个%s)", p->data.name, p->data.age, p->data.num, p->data.sex, p->data.place);/fwrite(&(p->data), sizeof(Person), 1, fp);/
p = p->next;
}
cout << "数据存储成功!" << endl;
fclose(fp);
return OK;
}//存储数据
正常打印
那个是(后面还有4个%s),因为太多%s不让过,只能这样了