檔案操作(三)(四)
阿新 • • 發佈:2019-02-02
* fwrite 和 fread *
#include<stdio.h>
int main()
{
struct student
{
char name[20];
int age;
int num;
}mystudent;
FILE *fp;
fp = fopen("bal.txt", "w");
while (1)
{
printf("請輸入學生的姓名,年齡,學號\n");
scanf("%s%d%d", mystudent.name, &mystudent.age, &mystudent.num);
fwrite(&mystudent, sizeof(struct student), 1 , fp);
printf("是否繼續輸入?(Y/N)\n");
fflush(stdin);
int ch = getchar();
if (ch == 'N' || ch == 'n')
{
break;
}
}
}
fclose(fp);
FILE *fr;
fr = fopen("bal.txt", "r");
while (1)
{
fread(&mystudent, sizeof(struct student), 1, fr);
printf ("%s\t%d\t%d\t", mystudent.name, mystudent.age, mystudent.num);
printf("是否退出?(Y/N)\N");
fflush(stdin);
int ch = getchar();
if (ch == 'N' || ch == 'n')
{
break;
}
}
fclose(fr);
fprintf 和 fscanf
#include <stdio.h>
struct student
{
char name[20];
int age;
int num;
}mystudent;
int main()
{
FILE *fp;
if ((fp = fopen("test.txt", "w")) == NULL)
{
printf("檔案開啟失敗\n");
system("pause");
return 0;
}
while (1)
{
printf("請輸入學生的姓名,年齡,學號:\n");
scanf("%s%d%d", mystudent.name, &mystudent.age, &mystudent.num);
// fscanf(read, "%s\t%d\t%d\t", mystudent.name, &mystudent.age, &mystudent.num);
fprintf(fp, "%s\t%d\t%d\t", mystudent.name, mystudent.age, mystudent.num);
printf("是否繼續輸入(Y/N)\n");
fflush(stdin); //清空快取區
int ch = getchar();
if (ch == 'N' || ch == 'n')
{
break;
}
}
fclose(fp);
FILE *read;
if ((read = fopen("test.txt", "r")) == NULL)
{
printf("檔案開啟失敗\n");
system("pause");
return 0;
}
while (1)
{
printf("請輸入學生的姓名,年齡,學號:\n");
fscanf(read, "%s\t%d\t%d\t", mystudent.name, &mystudent.age, &mystudent.num);
fprintf(fp, "%s\t%d\t%d\t", mystudent.name, mystudent.age, mystudent.num);
printf("是否繼續輸入(Y/N)\n");
fflush(stdin); //清空快取區
int ch = getchar();
if (ch == 'N' || ch == 'n')
{
break;
}
}
fclose(fp);
system("pause");
return 0;
}