fwrite() และ fread() ใช้เขียน/อ่านไฟล์ใน C
fwrite() syntax
fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
where ptr - pointer to array of elements to be written size - size in bytes of each element nmemb - number of elements stream - pointer to FILE object for output stream
fread() syntax
fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
where ptr - pointer to block of memory size - size in bytes of each element nmemb - number of elements stream - pointer to FILE object for input stream
Algorithm
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.
ตัวอย่าง read/write structure ใน 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); }Output
Contents to file written successfully ! roll_no = 1 name = Ram roll_no = 2 name = Shyam