Read/Write Structure From/to a File in C Last Updated : 10 Jan, 2025 Comments Improve Suggest changes Like Article Like Report For writing in the file, it is easy to write string or int to file using fprintf and putc, but you might have faced difficulty when writing contents of the struct. fwrite and fread make tasks easier when you want to write and read blocks of data.Writing Structure to a File using fwriteWe can use fwrite() function to easily write a structure in a file. fwrite() function writes the to the file stream in the form of binary data block.Syntax of fwrite()size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)Parametersptr: pointer to the block of memory to be written.size: the size of each element to be written (in bytes).nmemb: umber of elements.stream: FILE pointer to the output file stream.Return ValueNumber of objects written.Example C // C program for writing // struct to file #include <stdio.h> #include <stdlib.h> // a struct to be read and written struct person { int id; char fname[20]; char lname[20]; }; int main() { FILE* outfile; // open file for writing outfile = fopen("person.bin", "wb"); if (outfile == NULL) { fprintf(stderr, "\nError opened file\n"); exit(1); } struct person input1 = { 1, "rohan", "sharma" }; // write struct to file int flag = 0; flag = fwrite(&input1, sizeof(struct person), 1, outfile); if (flag) { printf("Contents of the structure written " "successfully"); } else printf("Error Writing to File!"); // close file fclose(outfile); return 0; } OutputContents of the structure written successfullyReading Structure from a File using freadWe can easily read structure from a file using fread() function. This function reads a block of memory from the given stream.Syntax of fread()size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) Parametersptr: pointer to the block of memory to read.size: the size of each element to read(in bytes).nmemb: number of elements.stream: FILE pointer to the input file stream.Return ValueNumber of objects written.Example C // C program for reading // struct from a file #include <stdio.h> #include <stdlib.h> // struct person with 3 fields struct person { int id; char fname[20]; char lname[20]; }; // Driver program int main() { FILE* infile; // Open person.dat for reading infile = fopen("person1.dat", "wb+"); if (infile == NULL) { fprintf(stderr, "\nError opening file\n"); exit(1); } struct person write_struct = { 1, "Rohan", "Sharma" }; // writing to file fwrite(&write_struct, sizeof(write_struct), 1, infile); struct person read_struct; // setting pointer to start of the file rewind(infile); // reading to read_struct fread(&read_struct, sizeof(read_struct), 1, infile); printf("Name: %s %s \nID: %d", read_struct.fname, read_struct.lname, read_struct.id); // close file fclose(infile); return 0; } OutputName: Rohan Sharma ID: 1Related Articles:Structure in CBasics of File Handling in C Comment More infoAdvertise with us kartik Follow Improve Article Tags : C Language C-File Handling Similar Reads Basics of File Handling in C File handling in C is the process in which we create, open, read, write, and close operations on a file. C language provides different functions such as fopen(), fwrite(), fread(), fseek(), fprintf(), etc. to perform input, output, and many different C file operations in our program.Need of File Han 13 min read C fopen() Function In C, the fopen() function is used to open a file in the specified mode. The function returns a file pointer (FILE *) which is used to perform further operations on the file, such as reading from or writing to it. If the file exists then the fopen() function opens the particular file else a new file 5 min read EOF, getc() and feof() in C In this article, we will discuss the EOF, getc() function and feof() function in C.What is EOF?In C, EOF is a constant macro defined in the <stdlib.h> header file that is used to denote the end of the file in C file handling. It is used by various file reading functions such as fread(), gets() 3 min read fgets() in C In C, fgets() is a built-in function defined in <stdio.h> header file. It reads the given number of characters of a line from the input stream and stores it into the specified string. This function stops reading the characters when it encounters a newline character, has read the given number o 3 min read fprintf() in C fprintf is used to print content in file instead of stdout console. int fprintf(FILE *fptr, const char *str, ...); Example: C // C Program for the above approach #include<stdio.h> int main() { int i, n=2; char str[50]; //open file sample.txt in write mode FILE *fptr = fopen("sample.txt 1 min read scanf() and fscanf() in C In C language, scanf() function is used to read formatted input from stdin. It returns the whole number of characters written in it otherwise, returns a negative value.Syntax:int scanf(const char *characters_set)Time Complexity: O(n)Auxiliary Space: O(n) where n is the length of input.Many of us kno 4 min read C fread() Function The C fread() is a standard library function used to read the given amount of data from a file stream. Defined inside <stdio.h>, the fread() function reads the given number of elements of specific size from the file stream and stores it in the buffer memory. The total number of bytes read by f 4 min read fseek() vs rewind() in C In C, the functions fseek() and rewind() helps in manipulating the position of the pointer in the opened file but serve different purposes and have distinct working. The below table lists the major differences between fseek() and rewind() in C:Featurefseek()rewind()FunctionalityMoves the file pointe 2 min read What is return type of getchar(), fgetc() and getc() ? In C, getchar(), fgetc(), and getc() all are the functions used for reading characters from input buffer. This buffer is standard input buffer for getchar() and can be any specified file for getc() and fgetc(). In this article, we will learn about the return type of these functions and why it matter 3 min read Read/Write Structure From/to a File in C For writing in the file, it is easy to write string or int to file using fprintf and putc, but you might have faced difficulty when writing contents of the struct. fwrite and fread make tasks easier when you want to write and read blocks of data.Writing Structure to a File using fwriteWe can use fwr 3 min read Like