File handling lets programs save and read data from files. This helps keep information even after the program stops.
Why file handling is required in C
Introduction
Syntax
C
FILE *file_pointer; file_pointer = fopen("filename.txt", "mode"); // Use file_pointer to read or write fclose(file_pointer);
"filename.txt" is the name of the file you want to open or create.
"mode" tells if you want to read ("r"), write ("w"), or append ("a") to the file.
Examples
C
FILE *fp; fp = fopen("data.txt", "r");
C
FILE *fp; fp = fopen("output.txt", "w");
C
FILE *fp; fp = fopen("log.txt", "a");
Sample Program
This program creates a file named "example.txt" and writes a message into it. It then closes the file and prints a success message.
C
#include <stdio.h> int main() { FILE *fp; fp = fopen("example.txt", "w"); if (fp == NULL) { printf("Error opening file\n"); return 1; } fprintf(fp, "Hello, file handling!\n"); fclose(fp); printf("Data written to file successfully.\n"); return 0; }
Important Notes
Always check if the file opened successfully before reading or writing.
Remember to close the file after finishing to save changes and free resources.
Summary
File handling helps save data permanently outside the program.
It is useful for reading, writing, and appending data to files.
Opening and closing files properly is important to avoid errors.
Practice
1. Why is file handling required in C programming?
easy
Solution
Step 1: Understand the purpose of file handling
File handling allows programs to store data permanently on disk, beyond the program's runtime.Step 2: Compare options with this purpose
Only saving data permanently matches the main reason for file handling; other options are unrelated.Final Answer:
To save data permanently outside the program -> Option CQuick Check:
File handling = permanent data storage [OK]
Hint: File handling = saving data permanently [OK]
Common Mistakes:
- Thinking file handling speeds up program
- Confusing memory use with file storage
- Believing file handling avoids variables
2. Which of the following is the correct way to open a file for writing in C?
easy
Solution
Step 1: Recall fopen syntax in C
fopen requires a FILE pointer and mode string; "w" mode opens file for writing.Step 2: Check each option
FILE *fp = fopen("data.txt", "w"); uses FILE *fp and fopen with "w" correctly; others have wrong function, mode, or variable type.Final Answer:
FILE *fp = fopen("data.txt", "w"); -> Option DQuick Check:
Open file for writing = fopen with "w" [OK]
Hint: Use fopen with "w" mode and FILE pointer [OK]
Common Mistakes:
- Using 'r' mode to write
- Using open() instead of fopen()
- Declaring FILE variable instead of pointer
3. What will be the output of this C code snippet?
FILE *fp = fopen("test.txt", "w");
fprintf(fp, "Hello World");
fclose(fp);
fp = fopen("test.txt", "r");
char str[20];
fgets(str, 20, fp);
printf("%s", str);
fclose(fp);medium
Solution
Step 1: Write and close file
The code opens "test.txt" for writing, writes "Hello World", then closes the file.Step 2: Open file for reading and read content
It reopens the file for reading, reads the string into str, and prints it.Final Answer:
Hello World -> Option BQuick Check:
Write then read file prints saved text [OK]
Hint: Write, close, reopen, read to get output [OK]
Common Mistakes:
- Forgetting to close file before reading
- Using wrong mode for fopen
- Not reading file content before printing
4. Identify the error in this C code for file handling:
FILE *fp;
fp = fopen("data.txt", "r");
fprintf(fp, "Test");
fclose(fp);medium
Solution
Step 1: Check file open mode
The file is opened in "r" mode, which is read-only.Step 2: Check usage of fprintf
fprintf writes to file, but writing is not allowed in read mode, causing error.Final Answer:
Using fprintf on a file opened in read mode -> Option AQuick Check:
Write requires "w" mode, not "r" [OK]
Hint: Write only on files opened with "w" or "a" [OK]
Common Mistakes:
- Writing to read-only file
- Ignoring file open mode
- Not checking fopen return value
5. You want to save user input permanently and add new entries without deleting old data. Which file mode should you use in C?
hard
Solution
Step 1: Understand file modes
"w" overwrites file, "r" reads only, "a" appends data at end, "r+" reads and writes but does not append.Step 2: Choose mode for adding without deleting
Append mode "a" adds new data without deleting existing content.Final Answer:
"a" (append mode) -> Option AQuick Check:
Append mode = add data without deleting [OK]
Hint: Use "a" mode to add data without erasing [OK]
Common Mistakes:
- Using "w" which erases old data
- Confusing "r+" with append mode
- Trying to write in "r" mode
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
