Unlocking the Power of File Handling in C Programming

When it comes to mastering C programming, understanding file handling is a crucial skill to acquire. In this article, we’ll explore a practical example that demonstrates how to read the first line from a file, providing you with a solid foundation in C file handling and string manipulation.

The Problem Statement

Imagine you have a file named program.txt containing a text message in the current directory. Your task is to create a program that reads the first line from this file and saves its content to a string until a newline character (\n) is encountered.

The Solution

To tackle this challenge, you’ll need to possess knowledge of C file handling and string programming concepts. The program will open the program.txt file and read its content character by character, storing it in a string until a newline character is detected.

The Code

Here’s the C program that accomplishes this task:
“`c

include

include

int main() {
FILE *fp;
char c, str[100];

fp = fopen("program.txt", "r");
if (fp == NULL) {
    printf("Error: File not found\n");
    exit(1);
}

int i = 0;
while ((c = fgetc(fp))!= '\n' && c!= EOF) {
    str[i++] = c;
}
str[i] = '\0';

printf("First line: %s\n", str);

fclose(fp);
return 0;

}
“`
How it Works

Let’s break down the code step by step. First, we open the program.txt file in read mode ("r"). If the file is not found, an error message is printed, and the program terminates. Next, we create a character array str to store the first line of the file. The while loop reads characters from the file until a newline character or the end of the file is reached, storing each character in the str array. Finally, we print the first line and close the file.

The Output

If the program.txt file contains the following text:

This is the first line.
This is the second line.

The program’s output will be:

First line: This is the first line.

On the other hand, if the file is not found, the program will print:

Error: File not found

Leave a Reply

Your email address will not be published. Required fields are marked *