從鍵盤輸入4位學生的資料(學生資料包括學號、姓名和三門課成績),然後把它們轉存到磁碟檔案中去,再從磁碟檔案讀入相應變數中,並將變數內容輸出到螢幕。
阿新 • • 發佈:2019-01-26
#include<stdio.h>
#define num 4
struct stu
{
char number[20];
char name[20];
float Sub1;
float Sub2;
float Sub3;
};
int main()
{
int i;
FILE *fp;
struct stu st[num],read[num];
printf("請輸入四位學生的學號、姓名以及三門課成績(空格分隔)。\n");
for(i=0;i<num;i++)
{
printf("%d.",i+1);
scanf("%s%s%f%f%f",st[i].number,st[i].name,&st[i].Sub1,&st[i].Sub2,&st[i].Sub3);
}
if((fp=fopen("D:\\student.txt","w"))==NULL)
printf("開啟失敗!");
else
printf("成功!");
for(i=0;i<num;i++)
{
fprintf(fp,"%s %s %.1f %.1f\n",st[i].number,st[i].name,st[i].Sub1,st[i].Sub2,st[i].Sub3);
}
fclose(fp);
if((fp=fopen("D:\\student.txt","r"))==NULL)
printf("開啟失敗!");
else
printf("成功!");
printf("學號 姓名 學科1 學科2 學科3 \n");
for(i=0;i<num;i++)
{
fscanf(fp,"%s %s %f %f %f",read[i].number,read[i].name,&read[i].Sub1,&read[i].Sub2,&read[i].Sub3);
printf("%s %s %.1f %.1f\n",read[i].number,read[i].name,read[i].Sub1,read[i].Sub2,read[i].Sub3);
}
fclose(fp);
return 0;
#define num 4
struct stu
{
char number[20];
char name[20];
float Sub1;
float Sub2;
float Sub3;
};
int main()
{
int i;
FILE *fp;
struct stu st[num],read[num];
printf("請輸入四位學生的學號、姓名以及三門課成績(空格分隔)。\n");
for(i=0;i<num;i++)
{
printf("%d.",i+1);
scanf("%s%s%f%f%f",st[i].number,st[i].name,&st[i].Sub1,&st[i].Sub2,&st[i].Sub3);
}
if((fp=fopen("D:\\student.txt","w"))==NULL)
printf("開啟失敗!");
else
printf("成功!");
for(i=0;i<num;i++)
{
fprintf(fp,"%s %s %.1f %.1f\n",st[i].number,st[i].name,st[i].Sub1,st[i].Sub2,st[i].Sub3);
}
fclose(fp);
if((fp=fopen("D:\\student.txt","r"))==NULL)
printf("開啟失敗!");
else
printf("成功!");
printf("學號 姓名 學科1 學科2 學科3 \n");
for(i=0;i<num;i++)
{
fscanf(fp,"%s %s %f %f %f",read[i].number,read[i].name,&read[i].Sub1,&read[i].Sub2,&read[i].Sub3);
printf("%s %s %.1f %.1f\n",read[i].number,read[i].name,read[i].Sub1,read[i].Sub2,read[i].Sub3);
}
fclose(fp);
return 0;
}
這個怎麼不對,求解!