C Programming
In this tutorial we will learn to read and write multiple data in files in C programming language.
In the previous tutorials we have learned how to read and write characters in files in C and how to read and write integers in files in C. In both the cases we worked with single character and integer at a time. Now we will learn to handle multiple data using fscanf()
and fprintf()
functions.
We know how to use scanf()
function to take input and printf()
function to print the output.
In a similar way, we use the fscanf()
function to read data from the file and fprintf()
function to write data in the file.
Syntax of fscanf function:
fscanf(fptr, "control string", list_of_var);
Where, fptr
is a file pointer. The control string
contains the input specification like %d
for integer or %c
for character. list_of_var
is the list of variables.
Syntax of fprintf function:
fprintf(fptr, "control string", list_of_var);
We will create a student
file for this program.
We will use the fprintf()
function to write the data in the file and then using the fscanf()
function to read the data from the file.
#include <stdio.h>
int main(void) {
// creating a FILE variable
FILE *fptr;
// integer variable
int id, score;
int i, s;
// character variable
char name[255];
char n[255];
// open the file in write mode
fptr = fopen("student", "w");
if (fptr != NULL) {
printf("File created successfully!\n");
}
else {
printf("Failed to create the file.\n");
// exit status for OS that an error occured
return -1;
}
// get student detail
printf("Enter student name: ");
gets(name);
printf("Enter student ID: ");
scanf("%d", &id);
printf("Enter student score: ");
scanf("%d", &score);
// write data in file
fprintf(fptr, "%d %d %s", id, score, name);
// close connection
fclose(fptr);
// open file for reading
fptr = fopen("student", "r");
// display detail
printf("\nStudent Details:\n");
fscanf(fptr, "%d %d %[^\n]s", &i, &s, n);
printf("ID: %d\n", i);
printf("Name: %s\n", n);
printf("Score: %d\n", s);
printf("\nEnd of file.\n");
// close connection
fclose(fptr);
return 0;
}
Output:
File created successfully!
Enter student name: Yusuf Shakeel
Enter student ID: 100
Enter student score: 9
Student Details:
ID: 100
Name: Yusuf Shakeel
Score: 9
End of file.
Content of the student
file.
We can also use the fscanf
and fprintf
function to read data from the standard input stdin
like keyboard and write data to the standard output stdout
like monitor.
In the following example we are taking id and score from user and printing it.
#include <stdio.h>
int main(void) {
// variables
int id, score;
// take user input
printf("Enter ID: ");
fscanf(stdin, "%d", &id);
printf("Enter Score: ");
fscanf(stdin, "%d", &score);
// print output
printf("\nDetail:\n");
fprintf(stdout, "ID: %d\n", id);
fprintf(stdout, "Score: %d\n", score);
return 0;
}
Output:
Enter ID: 1
Enter Score: 20
Detail:
ID: 1
Score: 20
ADVERTISEMENT