1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng lập trình cơ bản bài 8 chu thị hường

28 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

LẬP TRÌNH CƠ BẢN KIỂU TẬP TIN (FILE) Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT NỘI DUNG      Giới thiệu Biến trỏ tập tin Các thao tác tập tin Truy cập tập tin văn Truy cập tập tin nhị phân Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT GIỚI THIỆU  Kiểu tập tin: Dữ liệu lưu trữ thành file hệ thống  Các kiểu tập tin: kiểu    Tập tin văn (Text File) Tập tin định kiểu (Typed File) Tập tin không định kiểu (Untyped File) Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT BIẾN VÀ CON TRỎ TẬP TIN  Biến tập tin: biến thuộc kiểu liệu tập tin dùng để đại diện cho tập tin  Con trỏ tập tin:    Khi tập tin mở để làm việc, thời điểm, có vị trí tập tin mà việc đọc/ghi thơng tin xảy Người ta hình dung có trỏ đến vị trí đặt tên trỏ tập tin Sau đọc/ghi xong liệu, trỏ chuyển dịch thêm phần tử phía cuối tập tin Sau phần tử liệu cuối tập tin dấu kết thúc tập tin EOF (End Of File) Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT CÁC THAO TÁC TRÊN TẬP TIN Khai báo biến tập tin Mở tập tin hàm fopen() xử lý liệu tập tin hàm đọc/ghi liệu Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT Đóng tập tin hàm fclose() CÁC THAO TÁC TRÊN TẬP TIN  Khai báo biến tập tin  Cú pháp:  FILE Ví dụ: FILE *f1,*f2; Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT CÁC THAO TÁC TRÊN TẬP TIN  Mở tập tin  Cú pháp: FILE *fopen(char *Path, const char *Mode)  Path: chuỗi đường dẫn đến tập tin đĩa  Type: chuỗi xác định cách thức mà tập tin mở Các giá trị Mode: Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT CÁC THAO TÁC TRÊN TẬP TIN  Mở tập tin Mode Ý nghĩa r Mở tập tin văn để đọc w Tạo tập tin văn để ghi a Nối vào tập tin văn rb Mở tập tin nhị phân để đọc wb Tạo tập tin nhị phân để ghi ab Nối vào tập tin nhị phân Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT CÁC THAO TÁC TRÊN TẬP TIN  Mở tập tin Mode Ý nghĩa r+ Mở tập tin văn để đọc/ghi w+ Tạo tập tin văn để đọc ghi a+ Nối vào hay tạo tập tin văn để đọc/ghi r+b Mở tập tin nhị phân để đọc/ghi w+b Tạo tập tin nhị phân để đọc/ghi a+b Nối vào hay tạo tập tin nhị phân Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT CÁC THAO TÁC TRÊN TẬP TIN  Mở tập tin  Ví dụ: Mở tập tin để ghi FILE *f; f = fopen(“TEST.txt”, “w”); if (f!=NULL) { /* Các câu lệnh để thao tác với tập tin*/ /* Đóng tập tin*/ } Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT TRUY CẬP TẬP TIN VĂN BẢN  Đọc liệu từ tập tin văn bản:    int getc(FILE *f): đọc liệu từ tập tin văn mở để làm việc char *fgets(char *buffer, int n, FILE *f): đọc chuỗi ký tự từ tập tin văn mở liên kết với trỏ f đọc đủ n ký tự gặp ký tự xuống dòng ‘\n’ hay gặp ký tự kết thúc EOF fscanf(FILE *f, const char *format, varlist): đọc liệu từ tập tin văn vào danh sách biến theo định dạng Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT TRUY CẬP TẬP TIN VĂN BẢN  Ví dụ 1: Viết chương trình ghi chuỗi ký tự lên tập tin văn D:\\THIDU.txt #include #include int main() { FILE *f; f=fopen("D:\\thidu.txt","w+"); if (f!=NULL) { fputs("BAI THUC HANH.\n",f); fputs("Bai 1: Nhap cac so nguyen duong.",f); fclose(f); } getch(); return 0; } Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT TRUY CẬP TẬP TIN VĂN BẢN  Ví dụ 2: Viết chương trình ghi chuỗi ký tự lên tập tin văn D:\\THIDU.txt #include #include int main() { FILE *f1,*f2; f1=fopen("D:\\THIDU.txt","rt"); f2=fopen("D:\\VIDU.txt","wt"); if (f1!=NULL && f2!=NULL) { int ch=fgetc(f1); while (! feof(f1)) { fputc(ch,f2); ch=fgetc(f1); }fcloseall(); } getch(); return 0;} Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT TRUY CẬP TẬP TIN NHỊ PHÂN  Ghi liệu lên tập tin nhị phân - Hàm fwrite() : size_t fwrite(const void *ptr, size_t size, size_t n, FILE *f)      ptr: trỏ đến vùng nhớ chứa thông tin cần ghi lên tập tin n: số phần tử ghi lên tập tin size: kích thước phần tử f: trỏ tập tin mở Giá trị trả hàm số phần tử ghi lên tập tin Giá trị n trừ xuất lỗi Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT TRUY CẬP TẬP TIN NHỊ PHÂN  Đọc liệu từ tập tin nhị phân - Hàm fread() : size_t fread(const void *ptr, size_t size, size_t n, FILE *f)      ptr: trỏ đến vùng nhớ nhận liệu từ tập tin n: số phần tử đọc từ tập tin size: kích thước phần tử f: trỏ tập tin mở Giá trị trả hàm số phần tử đọc từ tập tin Giá trị n hay nhỏ n chạm đến cuối tập tin có lỗi xuất Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT TRUY CẬP TẬP TIN NHỊ PHÂN  Di chuyển trỏ tập tin - Hàm fseek(): int fseek(FILE *f, long offset, int whence)     f: trỏ tập tin thao tác offset: số byte cần dịch chuyển trỏ tập tin kể từ vị trí trước Phần tử vị trí whence: vị trí bắt đầu để tính offset:  ( SEEK_SET): Vị trí đầu tập tin  (SEEK_CUR): Vị trí trỏ tập tin  (SEEK_END): Vị trí cuối tập tin Kết trả hàm việc di chuyển thành công Nếu không thành công, giá trị khác (đó mã lỗi) trả Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT BÀI TẬP THỰC HÀNH  Bài Thực biên soạn chạy thử nghiệm Ví dụ  Bài 2: Thực biên soạn chạy thử nghiệm chương trình sau: #include #include int a[10]; void GhiFile(int N) { FILE *f=fopen("D:\\Data.dat","wt"); for(int i=0;i

Ngày đăng: 21/07/2023, 16:55