Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Giải thích chế độ ghi (write) file trong ngôn ngữ C


File là tập hợp bản ghi hoặc vị trí trên ổ cứng lưu trữ dữ liệu vĩnh viễn.

Tại sao cần File?

  • Dữ liệu mất khi chương trình kết thúc.
  • Lưu vào file giữ dữ liệu vĩnh viễn.
  • Dễ dàng nhập lượng dữ liệu lớn.
  • Truy cập nội dung file bằng vài lệnh đơn giản.
  • Di chuyển dữ liệu giữa máy tính dễ dàng.
  • C cung cấp nhiều cách truy cập file.

Các thao tác trên File

  • Đặt tên file
  • Mở file
  • Đọc từ file
  • Ghi vào file
  • Đóng file

Cú pháp

Khai báo con trỏ file:

FILE *File_pointer;  // Ví dụ: FILE *fptr;

Mở file chế độ ghi (write):

FILE *fp;
fp = fopen("sample.txt", "w");
  • Nếu file không tồn tại: tạo file mới.
  • Nếu file tồn tại: nội dung cũ bị xóa, ghi nội dung mới.

Chương trình 1: Lưu thông tin sinh viên

#include <stdio.h>
#include <stdlib.h>

int main() {
    char name[50];
    int marks, i, num;
    
    printf("Nhập số lượng sinh viên: ");
    scanf("%d", &num);
    
    FILE *fptr = fopen("std.txt", "w");
    if (fptr == NULL) {
        printf("Lỗi mở file!\n");
        exit(1);
    }
    
    for (i = 0; i < num; ++i) {
        printf("Sinh viên %d\nNhập tên: ", i+1);
        scanf("%s", name);
        printf("Nhập điểm: ");
        scanf("%d", &marks);
        fprintf(fptr, "\nName: %s \nMarks=%d \n", name, marks);
    }
    fclose(fptr);
    return 0;
}

Kết quả chạy chương trình 1

Nhập số lượng sinh viên: 3
Sinh viên 1
Nhập tên: lucky
Nhập điểm: 59
Sinh viên 2
Nhập tên: pinky
Nhập điểm: 89
Sinh viên 3
Nhập tên: bob
Nhập điểm: 45

Chương trình 2: Lưu thông tin nhân viên

#include <stdio.h>
int main() {
    FILE *fp;
    int eno;
    char ename[30];
    float sal;
    
    fp = fopen("emp.txt", "w");
    printf("Nhập thông tin: mã, tên, lương: ");
    scanf("%d %s %f", &eno, ename, &sal);
    fprintf(fp, "%d %s %f", eno, ename, sal);
    fclose(fp);
    
    fp = fopen("emp.txt", "r");
    fscanf(fp, "%d %s %f", &eno, ename, &sal);
    printf("Mã nhân viên: %d\n", eno);
    printf("Tên nhân viên: %s\n", ename);
    printf("Lương: %f\n", sal);
    fclose(fp);
    return 0;
}

Kết quả chạy chương trình 2

Nhập thông tin: mã, tên, lương: 1 Pinky 34000
Mã nhân viên: 1
Tên nhân viên: Pinky
Lương: 34000.000000