C语言如何将输入数据以TXT格式保存到磁盘中
例如学生成绩管理程序:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
struct student
{
char name[10];
int num;
int score[3];
float ave;
}stud[SIZE];
void main()
{
void save(void);
int i;
float sum[SIZE];
FILE * fp1;
for(i =0; i < SIZE; i++)
{
scanf("%s %d %d %d %d", stud[i].name, &stud[i].num, &stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
sum[i] = stud[i].score[0] + stud[i].score[1] + stud[i].score[2];
stud[i].ave = sum[i] / 3;
}
save();
fp1 = fopen("stu.txt", "rb");
printf("-----------------------------------------------------------\n");
for (i = 0; i < SIZE; i++)
{
fread(&stud[i], sizeof(struct student), 1, fp1);
printf("%-10s %3d %7d %7d %7d %8.2f\n", stud[i].name, stud[i].num, stud[i].score[0], stud[i].score[1], stud[i].score[2], stud[i].ave);
}
fclose(fp1);
}
void save(void)
{
FILE *fp;
int i;
if ((fp = fopen("stu.txt", "wb")) == NULL)
{
printf("error\n");
return;
}
for(i = 0; i < SIZE; i++)
{
if(fwrite(&stud[i], sizeof(struct student), 1, fp) != 1)
{
printf("error\n");
}
}
fclose(fp);
}
运行后在项目中能找到一个名为stu的文档文件,但是打开后是乱码。