Reading Data from a File Using fscanf in C programming
fscanf in CReading Data from a File Using fscanf in C
The fscanf function in C is used to read formatted data from a file. It allows you to parse and retrieve data from a file using format specifiers, similar to how you use scanf to read from standard input.
Syntax
The syntax for fscanf is as follows:
int fscanf(FILE *stream, const char *format, ...);
Where:
streamis a pointer to aFILEobject that identifies the input stream (e.g., a file).formatis the format string that specifies how the input data should be parsed....represents additional pointers to variables where the parsed data will be stored.
Example Code
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "r");
int age;
float height;
if (file != NULL) {
// Read an integer and a floating-point number from the file
fscanf(file, "%d %f", &age, &height);
fclose(file); // Close the file after reading
// Output the read values
printf("Age: %d\n", age);
printf("Height: %.2f\n", height);
} else {
printf("Error opening file.\n");
}
return 0;
}
In this example:
FILE *file = fopen("data.txt", "r");opens the filedata.txtfor reading. Ensure the file exists in the working directory.fscanf(file, "%d %f", &age, &height);reads an integer and a floating-point number from the file and stores them inageandheightvariables, respectively.fclose(file);closes the file to free up resources after reading.printf("Age: %d\n", age);andprintf("Height: %.2f\n", height);display the values read from the file.
Key Points
- File Handling: Always check if the file is successfully opened before using
fscanf. Handle potential errors if the file cannot be opened. - Format Specifiers: Use format specifiers in
fscanfto match the type and format of data in the file (e.g.,%dfor integers,%ffor floating-point numbers). - Buffer Management: Ensure the buffer variables are correctly defined and match the format specifiers used in
fscanf.
Note: Be cautious of the format and data types when using
fscanf. Mismatched format specifiers or incorrect data types can lead to incorrect readings or runtime errors.
Comments
Post a Comment