📖 Scenario: Imagine you want to save a list of your favorite fruits to a file on your computer so you can look at it later or share it with friends.
🎯 Goal: You will write a simple C program that creates a file and writes a list of fruits into it, one fruit per line.
📋 What You'll Learn
Create an array of strings with exact fruit names
Open a file for writing with the exact filename
Write each fruit to the file on its own line
Close the file properly
Print a confirmation message after writing
💡 Why This Matters
🌍 Real World
Saving data to files is common in many programs, like saving user preferences, logs, or reports.
💼 Career
Understanding file writing is essential for software developers working on data storage, configuration files, or any program that needs to save information.
Progress0 / 4 steps
1
Create the fruit list
Create a string array called fruits with these exact entries: "Apple", "Banana", "Cherry", "Date", "Elderberry".
C
Hint
Use char *fruits[] = { ... }; to create the array of fruit names.
2
Open the file for writing
Add a variable called file of type FILE * and open a file named "fruits.txt" for writing using fopen.
C
Hint
Use FILE *file = fopen("fruits.txt", "w"); to open the file for writing.
3
Write fruits to the file
Use a for loop with an integer variable i from 0 to 4 to write each fruit from fruits[i] to the file using fprintf, adding a newline after each fruit.
C
Hint
Use for (int i = 0; i < 5; i++) and inside the loop fprintf(file, "%s\n", fruits[i]);.
4
Close the file and print confirmation
Close the file using fclose(file) and then print "Fruits saved to fruits.txt" using printf. End the main function with return 0;.
C
Hint
Use fclose(file); to close the file and printf("Fruits saved to fruits.txt\n"); to print the message.
Practice
(1/5)
1. What does the mode "w" mean when used with fopen in C?
easy
A. Open a file for writing, creating it if it doesn't exist, or overwriting if it does.
B. Open a file for reading only.
C. Open a file for appending data at the end.
D. Open a file in binary mode for reading and writing.
Solution
Step 1: Understand fopen modes
The mode "w" in fopen means open for writing. If the file exists, it will be overwritten. If it doesn't exist, it will be created.
Step 2: Compare with other modes
Other modes like "r" are for reading, "a" for appending, and "wb" for binary write. "w" specifically means write with overwrite or create.
Final Answer:
Open a file for writing, creating it if it doesn't exist, or overwriting if it does. -> Option A
Quick Check:
fopen mode "w" = write with overwrite [OK]
Hint: Remember: "w" means write and overwrite file [OK]
Common Mistakes:
Confusing "w" with "a" (append mode)
Thinking "w" opens file for reading
Assuming "w" preserves existing content
2. Which of the following is the correct way 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, to open a file for writing, use fopen with mode "w". The function is fopen, not open.
Step 2: Check each option
FILE *fp = fopen("data.txt", "r"); uses mode "r" (read), not writing. FILE *fp = fopen("data.txt", "a"); uses "a" (append). FILE *fp = open("data.txt", "w"); uses open, which is not standard C file open function.
Final Answer:
FILE *fp = fopen("data.txt", "w"); -> Option A
Quick Check:
Use fopen with "w" to write [OK]
Hint: Use fopen with "w" to write files in C [OK]
Common Mistakes:
Using open() instead of fopen()
Using wrong mode like "r" or "a"
Forgetting to use double quotes around filename
3. What will be the output in the file "output.txt" after running this code?
B. File name should be a variable, not a string literal
C. fprintf syntax is wrong, needs format specifier
D. Missing fclose(fp) to close the file
Solution
Step 1: Check file opening and writing
The file is opened correctly with fopen and mode "w". fprintf syntax is correct to write "Test".
Step 2: Check for missing file closure
The code does not call fclose(fp), which is necessary to close the file and flush buffers properly.
Final Answer:
Missing fclose(fp) to close the file -> Option D
Quick Check:
Always close files with fclose [OK]
Hint: Always fclose after writing to file [OK]
Common Mistakes:
Forgetting fclose causes data loss
Confusing fopen modes
Thinking fprintf needs format specifier always
5. You want to write multiple lines to a file "log.txt" in C. Which code snippet correctly writes these lines and ensures the file is properly handled?
Option 1 opens file with "w" (write), writes two lines separately, and closes file properly. This is correct.
Step 2: Check other options
Option 2 opens with "r" (read), so writing causes error. Option 3 writes lines but misses fclose, risking data loss. Option 4 opens with "a" (append), writes only one line, but the goal is multiple lines.
Final Answer:
Option 1 only -> Option B
Quick Check:
"w" + multiple fprintf + fclose [OK]
Hint: Use "w" mode and always fclose [OK]
Common Mistakes:
Using "r" mode when writing
Forgetting fclose after writing
Not understanding difference between "w" and "a"
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.