Bài 8 : Kiểu File Trong C

1280

Ở bài trước chúng ta đã cùng tìm hiểu kiểu cấu trúc trong c , để tiếp tục ở bài này tôi sẽ giới thiệu với mọi người kiểu file trong c :

  • „ … hiểu file là gì?
  • … cách mở file để ghi dữ liệu?
  • … cách mở file để đọc dữ liệu?
  • … cách mở file để thêm dữ liệu?
  • … cách ghi một chuỗi vào file?
  • … cách đọc một chuỗi từ file?

Kiểu File Trong C Là Gì?

  • File: là một tập hợp dữ liệu liên quan được máy tính ghi lên bộ nhớ thứ cấp (HDD, FDD,…)
  • Khi máy tính đọc file: copy dữ liệu từ bộ nhớ thứ cấp vào bộ nhớ trong của máy.
  • Khi máy tính ghi file: copy dữ liệu từ bộ nhớ trong ra bộ nhớ thứ cấp
  • File được dùng để lưu trữ dữ liệu
  • Buffers: là các vùng đặc biệt làm trung gian để đọc/ghi dữ liệu giữa máy tính và bộ nhớ thứ cấp (chẳng hạn: khi ghi dữ liêu, chương trình sẽ ghi vào buffers trước, rồi sau đó mới ghi vào HDD)

Các bước làm việc với file trong c

  • Khai báo một con trỏ file với từ khóa FILE (nằm trong stdio.h)
  • Mở file để đọc / ghi
  • Đọc / ghi dữ liệu từ file
  • Đóng file

Khai báo file trong c

  • FILE *<biến con trỏ file>
  • Ví dụ: FILE *f; FILE *a;
  • C quan niệm <biến con trỏ file> như là một luồng (stream) để kết nối giữa dữ liệu và thiết bị đầu cuối

file-trong-c

  • C định nghĩa sẵn 3 stream chuẩn, được tự động đóng mở, chúng ta không được định nghĩa lại 3 stream này
    • Stdin – dòng vào chuẩn (keyboard)
    • Stdout – dòng ra chuẩn (screen)
    • Stderr – dòng báo lỗi chuẩn (screen)

Mở file để đọc/ghi

  • Cú pháp: <bien_file> = fopen(“ten_file”, “mode”);
  • Trong đó
    • bien_file: là con trỏ kiểu FILE đã khai báo
    • ten_file: là tên của file cần đọc/ghi dữ liệu
    • mode: là kiểu mở file (để đọc/ghi)
    • Nếu việc mở file không thành công, bien_file = NULL
  • Ví dụ

=> Mở file mydata.txt để ghi dữ liệu; mở file c:\mydata.dat để đọc dữ liệu

Modes

mode

Đóng file trong C

  • Sau khi ghi dữ liệu xong, phải đóng file bằng thủ tục:
    • fclose(<con_tro_file>);
    • Ví dụ: fclose(f); fclose(f1);
  • Hàm kiểm tra file đã kết thúc chưa
    • feof(<con_tro_file>);
    • Nếu file đã kết thúc thì feof() = NULL
  • Nếu kết thúc chương trình mà không đóng file, thì khi mở file sẽ không có dữ liệu
  • Dù mở file để đọc / ghi đều nên đóng file sau khi hoàn tất làm việc với file.

Các hàm đọc/ghi file trong C

  • Hàm fgetc(<con_tro_file>);
    • Đọc một kí tự trong file
    • fgetc(stdin) tương đương getchar();
  • Hàm fgets(<con_tro_file>);
    • Đọc một dòng trong file
    • fgets(stdin) tương đương gets();
  • Hàm fputc(‘a’,<con_tro_file>);
    • Ghi một kí tự vào file
    • fputc(‘a’, stdout) tương đương putc(‘a’);
  • Hàm fputs(<con_tro_file>);
    • fputs(s, stdout) tương đương puts(s);
  • Hàm fprintf(<con_tro_file>, s);
    • Ghi một xâu s (có định dạng) vào file
  • Hàm fscanf(<con_tro_file>,s);
    • Đọc dữ liệu từ file

Ví dụ đọc/ghi file trong c

Ví dụ bài tập : Giả sử có file c/data.txt lưu 10 số nguyên 1 5 7 9 8 0 4 3 15 20 . Hãy đọc các số nguyên thêm vào một mãng sau đó sắp xếp tăng dần rồi ghi vào file datasx.txt

Nguồn : lap trinh c

BÌNH LUẬN

Please enter your comment!
Please enter your name here