Bird
Raised Fist0
Cprogramming~5 mins

File modes in C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the file mode "r" mean in C?
The mode "r" opens a file for reading. The file must exist, or fopen() will return NULL.
Click to reveal answer
beginner
What happens if you open a file with mode "w" in C?
The mode "w" opens a file for writing. If the file exists, it is truncated (emptied). If it doesn't exist, a new file is created.
Click to reveal answer
intermediate
Explain the difference between "a" and "w" file modes.
"a" opens a file for appending. Data is added to the end without deleting existing content. "w" opens for writing and clears the file first.
Click to reveal answer
intermediate
What does the mode "r+" allow you to do?
"r+" opens a file for both reading and writing. The file must exist. You can read and write anywhere in the file.
Click to reveal answer
intermediate
What is the difference between "b" and text modes in file opening?
The "b" mode opens a file in binary mode, meaning data is read/written exactly as is. Without "b", the file is opened in text mode, which may translate line endings.
Click to reveal answer
Which file mode opens a file for reading and writing but requires the file to exist?
A"r+"
B"w"
C"a"
D"r"
What happens if you open a file with mode "w" and the file already exists?
AThe file is opened for reading only
BThe file is appended to
CThe file is truncated (emptied)
DThe file is left unchanged
Which mode should you use to add data to the end of a file without deleting existing content?
A"w"
B"a"
C"r"
D"r+"
What does the "b" in file modes like "rb" or "wb" stand for?
ABinary mode
BBuffered mode
CBasic mode
DBlock mode
If you try to open a non-existent file with mode "r", what happens?
AThe file is created
BThe file is opened for writing
CThe file is truncated
Dfopen() returns NULL
Describe the main differences between the file modes "r", "w", and "a" in C.
Think about what happens to the file content and if the file must exist.
You got /4 concepts.
    Explain why and when you would use binary mode ("b") when opening files in C.
    Consider files that are not plain text.
    You got /3 concepts.

      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

      1. Step 1: Understand file modes in C

        "r" mode opens a file for reading only, without modifying it.
      2. Step 2: Compare other modes

        "w" mode opens for writing and clears the file; "a" mode appends; "rw" is invalid in C.
      3. Final Answer:

        "r" mode -> Option B
      4. 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

      1. Step 1: Identify correct function and mode

        In C, fopen opens files; "w" mode opens for writing.
      2. Step 2: Check other options

        FILE *fp = fopen("data.txt", "r"); uses "r" (read), C uses "a" (append), D uses wrong function open.
      3. Final Answer:

        FILE *fp = fopen("data.txt", "w"); -> Option A
      4. 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?
      FILE *fp = fopen("test.txt", "w");
      fputs("Hello", fp);
      fclose(fp);
      
      fp = fopen("test.txt", "a");
      fputs(" World", fp);
      fclose(fp);
      
      fp = fopen("test.txt", "r");
      char buffer[20];
      fgets(buffer, 20, fp);
      printf("%s", buffer);
      fclose(fp);
      medium
      A. Hello
      B. Error
      C. Hello World
      D. World

      Solution

      1. Step 1: Write "Hello" to file with "w" mode

        Opening with "w" clears file and writes "Hello".
      2. Step 2: Append " World" with "a" mode

        Opening with "a" adds " World" at the end without erasing.
      3. Step 3: Read file content with "r" mode

        Reading file returns "Hello World" in buffer.
      4. Final Answer:

        Hello World -> Option C
      5. 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

      1. Step 1: Check file mode string validity

        "wa" is not a valid mode; modes must be "r", "w", "a" or with "b" for binary.
      2. Step 2: Understand consequences

        Invalid mode causes fopen to fail and return NULL.
      3. Final Answer:

        Incorrect file mode string "wa" -> Option A
      4. 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

      1. Step 1: Understand log file requirements

        Logs must keep old entries and add new ones without erasing.
      2. Step 2: Match file mode to requirement

        "a" mode appends data at the end, preserving existing content.
      3. Step 3: Evaluate other modes

        "w" clears file, "r" only reads, "r+" reads/writes but doesn't append automatically.
      4. Final Answer:

        "a" mode, because it appends new logs preserving old content -> Option D
      5. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard