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:
stream
is a pointer to aFILE
object that identifies the input stream (e.g., a file).format
is 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.txt
for 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 inage
andheight
variables, 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
fscanf
to match the type and format of data in the file (e.g.,%d
for integers,%f
for 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