|12. File Handling in C
Chapter 12C Language Tutorial~1 min read

File Handling in C

Files — Read/Write करणे

File handling म्हणजे C program मधून files उघडणे, वाचणे, लिहिणे, बंद करणे. Data permanently save करायला files वापरतात. stdio.h मध्ये सगळे file functions आहेत.

File Modes

  • "r" — Read: वाचायला, file नसेल तर NULL
  • "w" — Write: लिहायला, नसेल तर नवी बनवतो, असेल तर overwrite
  • "a" — Append: शेवटी add करतो, नसेल तर नवी बनवतो
  • "r+" — Read+Write: दोन्ही, file असायलाच हवी
  • "w+" — Write+Read: नवी बनवतो किंवा overwrite
  • "rb" / "wb" — Binary mode: images, videos साठी

File Write करणे

c
#include <stdio.h>

int main() {
    FILE *fptr;   // FILE pointer

    // File उघडणे — write mode
    fptr = fopen("notes.txt", "w");

    // Error check — file उघडली का?
    if (fptr == NULL) {
        printf("File उघडता आली नाही!\n");
        return 1;
    }

    // File मध्ये लिहिणे
    fprintf(fptr, "नमस्कार!\n");
    fprintf(fptr, "हे C File Handling चे notes आहेत.\n");
    fprintf(fptr, "आज loops शिकलो.\n");

    // File बंद करणे — हे विसरू नका!
    fclose(fptr);
    printf("File successfully लिहिली!\n");

    return 0;
}

File Read करणे

File Read करणे

c
#include <stdio.h>

int main() {
    FILE *fptr;
    char line[200];   // एक line साठी buffer

    // File उघडणे — read mode
    fptr = fopen("notes.txt", "r");

    if (fptr == NULL) {
        printf("File सापडली नाही!\n");
        return 1;
    }

    // fgets — एक line वाचतो
    while (fgets(line, sizeof(line), fptr) != NULL) {
        printf("%s", line);   // line print करतो
    }

    fclose(fptr);
    return 0;
}

Struct Data File मध्ये Save करणे

Student data file मध्ये save/load

c
#include <stdio.h>

typedef struct {
    char name[50];
    int marks;
} Student;

int main() {
    // Write students to file
    FILE *fw = fopen("students.txt", "w");
    Student students[] = {{"Rahul", 85}, {"Priya", 92}};

    for (int i = 0; i < 2; i++) {
        fprintf(fw, "%s %d\n", students[i].name, students[i].marks);
    }
    fclose(fw);

    // Read back
    FILE *fr = fopen("students.txt", "r");
    char name[50];
    int marks;

    printf("Students:\n");
    while (fscanf(fr, "%s %d", name, &marks) == 2) {
        printf("  %s: %d\n", name, marks);
    }
    fclose(fr);

    return 0;
}
💡

fclose() विसरू नका! File बंद न केल्यास data buffer मध्येच राहू शकतो आणि file corrupt होऊ शकते. Program crash झाला तरी fclose() नाही झाला तर data जाऊ शकतो.

Key Points — लक्षात ठेवा

  • FILE *fptr = fopen(filename, mode) — file उघडतो
  • fprintf() — file मध्ये लिहिणे, fscanf() — file मधून वाचणे
  • fgets() — एक line वाचतो
  • fclose() — file बंद करणे — mandatory!
  • fptr == NULL check — file उघडली नाही error handle करा
0/12 chapters पूर्ण