有关C++文件输入输出的问题,急请指教
数据结构如下:
typedef struct RT{
char Name[20];
int Age;
char Disease[30];
}RT;
void main()
{ int i;
FILE *fp;
for(i=0;i <3;i++)
{
cout < < "name: ";
cin> > student[i].Name;
cout < < "age: ";
cin> > student[i].Age;
cout < < "disease: ";
cin> > student[i].Disease;
}
fp=fopen( "client.txt ", "w ");
for(i=0;i <3;i++)
{
fwrite(&student[i].Name,20,1,fp);
fwrite(&student[i].Age,sizeof(int),1,fp);
fwrite(&student[i].Disease,30,1,fp);
}
fclose(fp);
}
输入:liang 1 heart
shao 2 nose
我理想中的打开client.txt文件内容是:
liang 1 heart
shao 2 nose
但实际上打开client.txt文件时所看到的是:
liang 烫烫烫烫烫烫烫 heart 烫烫烫烫烫烫烫烫烫烫烫烫shao 烫烫烫烫烫烫烫? nose 烫烫烫烫烫烫烫烫烫烫烫烫
为什么呢?怎么解决?请指教
[解决办法]
student.Name[19]= '\0 ';
student.Disease[29]= '\0 ';
fwrite(&student.Name,strlen(student.Name),1,fp);
fprintf(fp, "%d ",student.Age);
fwrite(&student.Disease,strlen(student.Disease),1,fp);