📖 Scenario: You are working on a simple program that needs to create and write to a file. Understanding how to open files in different modes is important to control whether you create a new file, overwrite an existing file, or append to it.
🎯 Goal: Build a C program that opens a file in write mode, writes a line of text, and then prints a confirmation message.
📋 What You'll Learn
Create a file pointer variable
Open a file named example.txt in write mode
Write the exact text Hello, File Modes! to the file
Close the file properly
Print File written successfully. to the console
💡 Why This Matters
🌍 Real World
File modes are used in programs to control how files are accessed and modified, such as saving user data or logs.
💼 Career
Understanding file modes is essential for software developers working with file input/output operations in many applications.
Progress0 / 4 steps
1
Create a file pointer variable
Declare a file pointer variable called file of type FILE *.
C
Hint
Use FILE * to declare a pointer for file operations.
2
Open the file in write mode
Open a file named example.txt in write mode using fopen and assign it to the variable file.
C
Hint
Use "w" mode in fopen to write to a file (creates or overwrites).
3
Write text to the file and close it
Use fprintf to write Hello, File Modes! to the file pointed by file. Then close the file using fclose.
C
Hint
Use fprintf(file, "text") to write and fclose(file) to close the file.
4
Print confirmation message
Print File written successfully. to the console using printf.
C
Hint
Use printf("File written successfully.\n") to show the message.
Practice
(1/5)
1. Which file mode in C opens a file for reading only, without allowing any changes to the file?
easy
A. "w" mode
B. "r" mode
C. "a" mode
D. "rw" mode
Solution
Step 1: Understand file modes in C
"r" mode opens a file for reading only, without modifying it.
Step 2: Compare other modes
"w" mode opens for writing and clears the file; "a" mode appends; "rw" is invalid in C.
Final Answer:
"r" mode -> Option B
Quick Check:
Read-only mode = "r" [OK]
Hint: Read-only files use "r" mode in C [OK]
Common Mistakes:
Confusing "w" with read mode
Using "rw" which is invalid in C
Thinking "a" allows reading
2. Which of the following is the correct syntax to open a file named data.txt for writing in C?
easy
A. FILE *fp = fopen("data.txt", "w");
B. FILE *fp = fopen("data.txt", "r");
C. FILE *fp = fopen("data.txt", "a");
D. FILE *fp = open("data.txt", "w");
Solution
Step 1: Identify correct function and mode
In C, fopen opens files; "w" mode opens for writing.
Step 2: Check other options
FILE *fp = fopen("data.txt", "r"); uses "r" (read), C uses "a" (append), D uses wrong function open.
Final Answer:
FILE *fp = fopen("data.txt", "w"); -> Option A
Quick Check:
Write mode uses fopen with "w" [OK]
Hint: Use fopen with "w" to write files in C [OK]
Common Mistakes:
Using open() instead of fopen()
Confusing "r" with write mode
Using "a" when write mode is needed
3. What will be the output of the following C code snippet?
Opening with "a" adds " World" at the end without erasing.
Step 3: Read file content with "r" mode
Reading file returns "Hello World" in buffer.
Final Answer:
Hello World -> Option C
Quick Check:
Write + Append + Read = "Hello World" [OK]
Hint: "w" clears file, "a" adds at end, reading shows combined text [OK]
Common Mistakes:
Assuming "a" overwrites file
Forgetting "w" clears file
Expecting only "Hello" output
4. Identify the error in this C code snippet that tries to open a file for appending:
FILE *fp;
fp = fopen("log.txt", "wa");
if (fp == NULL) {
printf("Failed to open file\n");
}
medium
A. Incorrect file mode string "wa"
B. Missing fclose(fp) after opening
C. Using printf instead of perror
D. File name should be absolute path
Solution
Step 1: Check file mode string validity
"wa" is not a valid mode; modes must be "r", "w", "a" or with "b" for binary.
Step 2: Understand consequences
Invalid mode causes fopen to fail and return NULL.
Final Answer:
Incorrect file mode string "wa" -> Option A
Quick Check:
File modes must be valid strings like "a" or "w" [OK]
Hint: File modes are single valid strings like "r", "w", or "a" [OK]
Common Mistakes:
Combining modes incorrectly like "wa"
Ignoring fopen failure check
Assuming "wa" means write and append
5. You want to create a log file that preserves old logs and adds new entries each time your program runs. Which file mode should you use in C to open the file, and why?
hard
A. "w" mode, because it clears old logs and writes fresh data
B. "r" mode, because it reads existing logs before adding new ones
C. "r+" mode, because it allows reading and writing at the start
D. "a" mode, because it appends new logs preserving old content
Solution
Step 1: Understand log file requirements
Logs must keep old entries and add new ones without erasing.
Step 2: Match file mode to requirement
"a" mode appends data at the end, preserving existing content.
Step 3: Evaluate other modes
"w" clears file, "r" only reads, "r+" reads/writes but doesn't append automatically.
Final Answer:
"a" mode, because it appends new logs preserving old content -> Option D
Quick Check:
Append mode "a" preserves and adds data [OK]
Hint: Use "a" mode to add without deleting old file content [OK]
Common Mistakes:
Using "w" which erases old logs
Thinking "r" can write
Confusing "r+" with append mode
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.