Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

อ่าน/เขียนโครงสร้างไฟล์โดยใช้ C


fwrite() และ fread() ใช้สำหรับเขียนไฟล์ในภาษา C.

fwrite() ไวยากรณ์

fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

ที่ไหน

ptr - ตัวชี้ไปยังอาร์เรย์ขององค์ประกอบที่จะเขียน

ขนาด - ขนาดเป็นไบต์ของแต่ละองค์ประกอบที่จะเขียน

nmemb - จำนวนองค์ประกอบ แต่ละองค์ประกอบมีขนาดไบต์

สตรีม – ตัวชี้ไปยังอ็อบเจ็กต์ FILE ที่ระบุเอาต์พุตสตรีม

fread() ไวยากรณ์

fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

ที่ไหน

ptr - ตัวชี้ไปยังบล็อกของหน่วยความจำที่มีขนาดต่ำสุดขนาด*nmemb ไบต์

ขนาด - ขนาดเป็นไบต์ของแต่ละองค์ประกอบที่จะอ่าน

nmemb - จำนวนองค์ประกอบ แต่ละองค์ประกอบมีขนาดไบต์

สตรีม - ตัวชี้ไปยังอ็อบเจ็กต์ FILE ที่ระบุอินพุตสตรีม

อัลกอริทึม

Begin
   Create a structure Student to declare variables.
   Open file to write.
   Check if any error occurs in file opening.
   Initialize the variables with data.
   If file open successfully, write struct using write method.
      Close the file for writing.
   Open the file to read.
   Check if any error occurs in file opening.
   If file open successfully, read the file using read method.
      Close the file for reading.
   Check if any error occurs.
   Print the data.
End.

นี่คือตัวอย่างการอ่าน/เขียนโครงสร้างในภาษา C:

โค้ดตัวอย่าง

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student {
   int roll_no;
   char name[20];
};
int main () {
   FILE *of;
   of= fopen ("c1.txt", "w");
   if (of == NULL) {
      fprintf(stderr, "\nError to open the file\n");
      exit (1);
   }
   struct Student inp1 = {1, "Ram"};
   struct Student inp2 = {2, "Shyam"};
   fwrite (&inp1, sizeof(struct Student), 1, of);
   fwrite (&inp2, sizeof(struct Student), 1, of);
   if(fwrite != 0)
      printf("Contents to file written successfully !\n");
   else
      printf("Error writing file !\n");
   fclose (of);
   FILE *inf;
   struct Student inp;
   inf = fopen ("c1.txt", "r");
   if (inf == NULL) {
      fprintf(stderr, "\nError to open the file\n");
      exit (1);
   }
   while(fread(&inp, sizeof(struct Student), 1, inf))
      printf ("roll_no = %d name = %s\n", inp.roll_no, inp.name);
   fclose (inf);
}

โอพุท

Contents to file written successfully !
roll_no = 1 name = Ram
roll_no = 2 name = Shyam