0
0
Cprogramming~20 mins

Error handling in files in C - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
File Error Handling Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this file error check?
Consider this C code snippet that tries to open a file and checks for errors. What will it print if the file does not exist?
C
#include <stdio.h>

int main() {
    FILE *fp = fopen("nonexistent.txt", "r");
    if (fp == NULL) {
        perror("Error opening file");
        return 1;
    }
    fclose(fp);
    return 0;
}
AError opening file: No such file or directory
BFile opened successfully
CSegmentation fault
DCompilation error
Attempts:
2 left
💡 Hint
Check what fopen returns when the file does not exist and how perror works.
Predict Output
intermediate
2:00remaining
What error does this code raise?
What error will this C code produce when trying to read from a file pointer that is NULL?
C
#include <stdio.h>

int main() {
    FILE *fp = NULL;
    char buffer[10];
    fgets(buffer, 10, fp);
    return 0;
}
ANo error, program runs fine
BRuntime error: file not found
CCompilation error
DSegmentation fault
Attempts:
2 left
💡 Hint
Think about what happens if you try to use a NULL pointer with fgets.
🧠 Conceptual
advanced
2:00remaining
Which option correctly checks for file open errors?
You want to open a file for writing and handle errors properly. Which code snippet correctly checks if the file was opened successfully?
A
FILE *fp = fopen("file.txt", "w");
if (fp != NULL) {
    perror("Failed to open file");
    return 1;
}
B
FILE *fp = fopen("file.txt", "w");
if (fp == NULL) {
    perror("Failed to open file");
    return 1;
}
C
FILE *fp = fopen("file.txt", "w");
if (fp == 0) {
    perror("Failed to open file");
    return 1;
}
D
FILE *fp = fopen("file.txt", "w");
if (fp = NULL) {
    perror("Failed to open file");
    return 1;
}
Attempts:
2 left
💡 Hint
Remember how to compare pointers to NULL in C.
Predict Output
advanced
2:00remaining
What is the output of this code with error handling?
What will this program print if the file "data.txt" exists and contains the text "Hello"?
C
#include <stdio.h>

int main() {
    FILE *fp = fopen("data.txt", "r");
    if (!fp) {
        printf("Cannot open file\n");
        return 1;
    }
    int c = fgetc(fp);
    if (c == EOF) {
        printf("Empty file\n");
    } else {
        printf("First char: %c\n", c);
    }
    fclose(fp);
    return 0;
}
AFirst char: H
BCannot open file
CEmpty file
DFirst char: EOF
Attempts:
2 left
💡 Hint
Check what fgetc returns when reading the first character of a non-empty file.
Predict Output
expert
2:00remaining
What is the value of 'count' after this file reading loop?
This program counts how many characters it reads from a file. What is the value of 'count' after running if the file "input.txt" contains exactly 3 characters?
C
#include <stdio.h>

int main() {
    FILE *fp = fopen("input.txt", "r");
    if (!fp) return 1;
    int count = 0;
    int ch;
    while ((ch = fgetc(fp)) != EOF) {
        count++;
    }
    fclose(fp);
    printf("%d\n", count);
    return 0;
}
A0
B4
C3
DUndefined behavior
Attempts:
2 left
💡 Hint
Remember that fgetc returns EOF after reading all characters.