Skip to content
Docs
தமிழ்
Esc
↑↓navigate↵open⌘Jpreview
On this page

11. File Handling in C

Reading and writing files using fopen, fclose, fprintf, fscanf, fgets, and related functions.

Work with files using fopen, fclose, fread, fwrite, fprintf, fscanf.

Examples

Read and Write a File (file_read_write.c)

Writes text to a file and reads it back, demonstrating fopen, fprintf, fgets, and fclose:

#include <stdio.h>

int main(void) {
    FILE *f = fopen("sample.txt", "w");
    if (!f) { perror("fopen write"); return 1; }
    fprintf(f, "Hello file!\n");
    fclose(f);

    f = fopen("sample.txt", "r");
    if (!f) { perror("fopen read"); return 1; }
    char buf[64];
    while (fgets(buf, sizeof buf, f)) {
        printf("%s", buf);
    }
    fclose(f);
    return 0;
}

Count Lines, Words, and Characters (file_count_lwc.c)

Reads a file character by character to count lines, words, and characters:

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char name[128];
    printf("File name: ");
    if (!fgets(name, sizeof name, stdin)) return 0;
    for (char *p = name; *p; p++) if (*p=='\n') *p='\0';

    FILE *f = fopen(name, "r");
    if (!f) { perror("open"); return 1; }

    long lines = 0, words = 0, chars = 0;
    int c, in_word = 0;
    while ((c = fgetc(f)) != EOF) {
        chars++;
        if (c == '\n') lines++;
        if (isspace(c)) { if (in_word) { words++; in_word = 0; } }
        else in_word = 1;
    }
    if (in_word) words++;

    fclose(f);
    printf("Lines=%ld Words=%ld Chars=%ld\n", lines, words, chars);
    return 0;
}

Was this page helpful?