Computer >> Máy Tính >  >> Lập trình >> lập trình C

Giải thích các hàm fread () và fwrite () được sử dụng trong các tệp trong C

Vấn đề

Viết chương trình C để lưu các thông tin chi tiết của 5 sinh viên vào một tệp và in giống nhau bằng cách sử dụng fread () và fwrite ()

Giải pháp

Hàm fread () đọc toàn bộ bản ghi cùng một lúc.

Cú pháp

fread( & structure variable, size of (structure variable), no of records, file pointer);

Ví dụ

struct emp{
   int eno;
   char ename [30];
   float sal;
} e;
FILE *fp;
fread (&e, sizeof (e), 1, fp);

Hàm fwrite () ghi toàn bộ bản ghi cùng một lúc.

Cú pháp

fwrite( & structure variable , size of structure variable, no of records, file pointer);

Ví dụ

struct emp{
   int eno:
   char ename [30];
   float sal;
} e;
FILE *fp;
fwrite (&e, sizeof(e), 1, fp);

Chương trình

#include<stdio.h>
struct student{
   int sno;
   char sname [30];
   float marks;
   char temp;
};
main ( ){
   struct student s[60];
   int i;
   FILE *fp;
   fp = fopen ("student1.txt", "w");
   for (i=0; i<2; i++){
      printf ("enter details of student %d\n", i+1);
      printf("student number:");
      scanf("%d",&s[i].sno);
      scanf("%c",&s[i].temp);
      printf("student name:");
      gets(s[i].sname);
      printf("student marks:");
      scanf("%f",&s[i].marks);
      fwrite(&s[i], sizeof(s[i]),1,fp);
   }
   fclose (fp);
   fp = fopen ("student1.txt", "r");
   for (i=0; i<2; i++){
      printf ("details of student %d are\n", i+1);
      fread (&s[i], sizeof (s[i]) ,1,fp);
      printf("student number = %d\n", s[i]. sno);
      printf("student name = %s\n", s[i]. sname);
      printf("marks = %f\n", s[i]. marks);
   }
   fclose(fp);
   getch( );
}

Đầu ra

enter details of student 1
student number:1
student name:pinky
student marks:56
enter details of student 2
student number:2
student name:rosy
student marks:87
details of student 1 are
student number = 1
student name = pinky
marks = 56.000000
details of student 2 are
student number = 2
student name = rosy
marks = 87.000000