马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
始终写入不正确。
执行完之后输入,接着输出结构体数组stud是正确的,但是写入文件就写的不对了。也没有返回错误,只是写入不对。#include<stdio.h>
#include<stdlib.h>//p320
#define SIE 4
struct student_type
{
char name[10];
int num;
int age;
char addr[15];
}stud[SIE];
void save()
{
FILE *fp;
int i;
if((fp=fopen("d:\\stu_list.txt","w"))==NULL)
{
printf("文件打开失败\n");
exit(1);
}
for (i = 0; i < SIE; i++)
{
if (fwrite(&stud[i], sizeof(struct student_type), 1, fp) != 1)
printf("文件写入失败\n");
}
fclose(fp);
}
/*void display()
{
FILE* fp;
int i;
if (fp = (fopen("d:\\stu_list.txt", "r")) == NULL)//只读方式打开文件
{
printf("文件打开失败\n");
exit(1);
}
for(i = 0;i<SIE; i++)
{
fread(&stud[i], sizeof(struct student_type), 1, fp);
printf("%-10s,%4d,%4d,%-15s", stud[i].name, stud[i].num, stud[i].age, stud[i].addr);
}
fclose(fp);
}*/
int main()
{
int i;
printf("请输入:\n姓名\t\tid\t年龄\t家乡\n");
for (i = 0; i < SIE; i++)
{
scanf("%s%d%d%s", stud[i].name, &stud[i].num, &stud[i].age, stud[i].addr);
printf("下一个\n");
}
/* for (i = 0; i < SIE; i++)
{
printf("%s,\t%d,\t%d,\t%s\n", stud[i].name, stud[i].num, stud[i].age, stud[i].addr);
}*/
save();
/* display();*/
return 0;
}
|