Bird
Raised Fist0
Cprogramming~5 mins

File pointers in C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a file pointer in C?
A file pointer in C is a variable of type FILE * that stores the address of a file stream. It is used to access and manipulate files.
Click to reveal answer
beginner
How do you open a file using a file pointer?
You use the fopen() function, which returns a FILE *. For example: FILE *fp = fopen("file.txt", "r"); opens a file for reading.
Click to reveal answer
beginner
What does fclose() do?
fclose() closes the file associated with the file pointer and frees resources. Always close files to avoid memory leaks.
Click to reveal answer
beginner
How can you check if a file was opened successfully?
Check if the file pointer is NULL. If fopen() returns NULL, the file did not open successfully.
Click to reveal answer
intermediate
What is the role of fseek() with file pointers?
fseek() moves the file pointer to a specific location in the file, allowing you to read or write at that position.
Click to reveal answer
What type is a file pointer in C?
Avoid *
Bint
Cchar *
DFILE *
Which function opens a file and returns a file pointer?
Afclose()
Bfprintf()
Cfopen()
Dfread()
What does fclose() do?
ACloses a file
BReads from a file
CWrites to a file
DMoves the file pointer
How do you check if a file failed to open?
ACheck if file pointer is 0
BCheck if file pointer is NULL
CCheck if file pointer is -1
DCheck if file pointer is 1
Which function moves the file pointer to a new position?
Afseek()
Bfwrite()
Cfread()
Dftell()
Explain what a file pointer is and how it is used in C programming.
Think about how you open and work with files in C.
You got /4 concepts.
    Describe the steps to safely open, use, and close a file using file pointers.
    Remember the order of operations when working with files.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does a file pointer in C represent?
      easy
      A. A variable that stores file contents
      B. A reference to a file opened in the program
      C. A function to read files
      D. A type of file format

      Solution

      1. Step 1: Understand what a file pointer is

        A file pointer is a special pointer that points to a file stream opened by the program.
      2. Step 2: Differentiate from other options

        It is not the file contents or a function, but a reference to the file for reading or writing.
      3. Final Answer:

        A reference to a file opened in the program -> Option B
      4. Quick Check:

        File pointer = Reference to opened file [OK]
      Hint: File pointer points to file stream, not contents [OK]
      Common Mistakes:
      • Thinking file pointer stores file data
      • Confusing file pointer with file reading function
      • Assuming file pointer is a file format
      2. Which of the following is the correct way to open a file for reading in C?
      easy
      A. FILE *fp = fopen("file.txt", "r");
      B. FILE fp = fopen("file.txt", "r");
      C. fopen FILE *fp = "file.txt", "r";
      D. FILE *fp = open("file.txt", "r");

      Solution

      1. Step 1: Recall fopen syntax

        The fopen function returns a pointer to FILE, so the variable must be FILE *fp.
      2. Step 2: Check each option

        FILE *fp = fopen("file.txt", "r"); correctly declares FILE *fp and calls fopen with filename and mode "r".
      3. Final Answer:

        FILE *fp = fopen("file.txt", "r"); -> Option A
      4. Quick Check:

        Correct fopen syntax = FILE *fp = fopen("file.txt", "r"); [OK]
      Hint: fopen returns FILE pointer, so use FILE * variable [OK]
      Common Mistakes:
      • Declaring FILE variable instead of pointer
      • Using open() instead of fopen()
      • Incorrect order of fopen parameters
      3. What will be the output of this C code snippet?
      FILE *fp = fopen("test.txt", "w");
      fprintf(fp, "Hello\n");
      fclose(fp);
      
      fp = fopen("test.txt", "r");
      char buffer[10];
      fgets(buffer, 10, fp);
      printf("%s", buffer);
      fclose(fp);
      medium
      A. Hello\n
      B. Compilation error
      C. test.txt
      D. Hello

      Solution

      1. Step 1: Write and close file

        The code opens test.txt for writing, writes "Hello\n", then closes the file.
      2. Step 2: Read and print file content

        It reopens test.txt for reading, reads a line into buffer, then prints it. fgets reads until newline or buffer limit.
      3. Final Answer:

        Hello (printed as Hello with newline) -> Option D
      4. Quick Check:

        File write/read prints "Hello" [OK]
      Hint: fgets reads line including newline, printf prints it [OK]
      Common Mistakes:
      • Expecting literal \n printed
      • Confusing fprintf and printf output
      • Forgetting to close file before reopening
      4. Identify the error in this code snippet:
      FILE *fp;
      fp = fopen("data.txt", "r");
      char c = fgetc(fp);
      while (c != EOF) {
          putchar(c);
          c = fgetc(fp);
      }
      fclose(fp);
      medium
      A. fgetc returns int, not char, causing wrong EOF check
      B. fopen mode "r" is incorrect for reading
      C. Missing fclose call
      D. putchar cannot print characters

      Solution

      1. Step 1: Check fgetc return type

        fgetc returns int to allow EOF (-1) detection, storing in char loses EOF info.
      2. Step 2: Understand EOF check failure

        Comparing char c to EOF fails because c cannot hold EOF value properly, causing infinite loop or wrong output.
      3. Final Answer:

        fgetc returns int, not char, causing wrong EOF check -> Option A
      4. Quick Check:

        Use int for fgetc result to detect EOF [OK]
      Hint: Store fgetc result in int to detect EOF correctly [OK]
      Common Mistakes:
      • Using char instead of int for fgetc result
      • Ignoring EOF check causing infinite loops
      • Assuming putchar can't print chars
      5. You want to append text "World" to an existing file "hello.txt" without deleting its content. Which is the correct way to open the file?
      hard
      A. FILE *fp = fopen("hello.txt", "r");
      B. FILE *fp = fopen("hello.txt", "w");
      C. FILE *fp = fopen("hello.txt", "a");
      D. FILE *fp = fopen("hello.txt", "r+");

      Solution

      1. Step 1: Understand file modes

        "a" mode opens file for appending, preserving existing content and writing at the end.
      2. Step 2: Compare other modes

        "w" overwrites file, "r" is read-only, "r+" allows read/write but does not append automatically.
      3. Final Answer:

        FILE *fp = fopen("hello.txt", "a"); -> Option C
      4. Quick Check:

        Append mode = "a" [OK]
      Hint: Use "a" mode to add without erasing file [OK]
      Common Mistakes:
      • Using "w" which erases file content
      • Using "r" which is read-only
      • 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