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

Read/Write structure ไปยังไฟล์ด้วย C


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