intTypePromotion=1

Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu tệp - Ninh Thị Thanh Tâm

Chia sẻ: Năm Tháng Tĩnh Lặng | Ngày: | Loại File: PDF | Số trang:33

0
79
lượt xem
8
download

Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu tệp - Ninh Thị Thanh Tâm

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Ngôn ngữ lập trình C về "Dữ liệu kiểu tệp" gồm có các nội dung sau đây: Khái niệm về tệp, các hàm vào ra tệp cơ bản, các hàm thao tác vào ra tệp mức thấp. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu tệp - Ninh Thị Thanh Tâm

  1. NGÔN NGỮ LẬP TRÌNH C Dữ liệu kiểu tệp Ninh Thị Thanh Tâm Khoa CNTT – HV Quản lý Giáo dục
  2. Mục đích  Biết các thao tác xử lý tệp như tạo tệp, đọc ghi tệp…  Xử lý tệp truy cập tuần tự  Xử lý tệp truy cập ngẫu nhiên
  3. Nội dung  Khái niệm về tệp  Các hàm vào ra tệp cơ bản  Các hàm thao tác vào ra tệp mức thấp
  4. Khái niệm về tệp  Đường dẫn truy cập các tệp  Thẻ tệp (file handle)  Các thông tin về tệp  Các kiểu vào ra với tệp
  5. Khái niệm về tệp  Đường dẫn truy cập các tệp  Tên ổ đĩa  Tên các thư mục  Tên tệp  Phần mở rộng  Thẻ tệp (file handle)  Là một số nguyên hệ điều hành trả lại khi tạo hay mở tệp  Dùng để truy cập đến một cấu trúc lưu trữ các thông tin cần thiết cho các thao tác với tệp
  6. Khái niệm về tệp  Các thông tin về tệp  Các thuộc tính của tệp đã mở  Kích thước và trạng thái tệp  Chế độ truyền: nhị phân và văn bản  Các kiểu vào ra với tệp  Các hàm vào ra theo dòng qua vùng đệm  Các hàm vào ra tệp mức thấp, không qua vùng đệm
  7. Các hàm vào ra tệp cơ bản Tên hàm Chức năng fopen() Mở tệp fclose() Đóng tệp putc() Ghi một kí tự lên tệp getc() Đọc một kí tự từ tệp fseek() Di chuyển con trỏ tệp đến một byte được chỉ định fprintf() Ghi lên tệp fscanf() Nhập dữ liệu từ tệp fflush() ghi ra tệp nội dung trên vùng đệm feof() Trả về giá trị khác 0 nếu con trỏ ở cuối tệp ferror() Trả về giá trị khác 0 nếu có lỗi xuất hiện trong thao tác rewind() Đưa con trỏ về đầu tệp
  8. Con trỏ tệp  Là một con trỏ kiểu FILE  Chỉ đến vùng nhớ chứa các thông tin liên quan đến tệp  Tên tệp  Tình trạng  Vị trí đang làm việc
  9. Con trỏ tệp Chế độ Ý nghĩa “r” Mở tệp để đọc, trả lại lỗi nếu tệp không tồn tại “w” Mở tệp để ghi, nếu tệp đã tồn tại, nội dung sẽ bị xóa “a” Mở tệp để ghi thêm vào cuối tệp “r+” Mở tệp để đọc và ghi, fopen trả lại lỗi nếu tệp không tồn tại “w+” Mở một tệp mới để đọc và ghi, nội dung bị xóa nếu tệp tồn tại “a+” Mở một tệp để ghi vào cuối tệp “t” Mở tệp theo kiểu văn bản “b” Mở tệp theo kiểu nhị phân
  10. Hàm fopen()  Mở tệp  Hàm nguyên mẫu: FILE *fopen(const char *filename, const char *mode);  filename là xâu kí tự gồm tên tệp và đường dẫn tới tệp  mode là trạng thái làm việc của tệp sau khi mở  Kết quả  NULL nếu thất bại  Con trỏ tệp nếu mở tệp thành công
  11. Ví dụ fp = fopen("readme.txt","rt"); if (fp==NULL){ printf("Khong mo duoc tep"); exit(0); }
  12. Hàm putc()  Ghi một kí tự lên tệp đã được mở  Hàm nguyên mẫu: int putc(int ch, FILE *fp)  fp là con trỏ tệp trả về trong thao tác mở tệp  ch là kí tự cần ghi lên tệp  Kết quả  Thành công: trả lại kí tự vừa ghi được  Thất bại: trả lại EOF
  13. Hàm getc()  Đọc một kí tự từ tệp đã được mở  Hàm nguyên mẫu: int getc(FILE *fp)  fp là con trỏ tệp trả về trong thao tác mở tệp  Kết quả  Thành công: trả lại kí tự vừa đọc được  Thất bại: trả lại EOF
  14. Ví dụ  Đọc đến cuối tệp văn bản ch = getc(); while (ch!=EOF) { ch = getc(fp); ... }  Đọc tệp nhị phân khi gặp kí tự kết thúc tệp while (!feof(fp)) ch = getc(fp);
  15. Hàm fclose()  Đóng tệp đã được mở  Hàm nguyên mẫu: int fclose(FILE *fp)  fp là con trỏ tệp trả về trong thao tác mở tệp  Kết quả  Thành công: trả lại 0  Thất bại: trả lại EOF
  16. Ví dụ - sao chép tệp /*filecopy.c*/ #include #include void main(){ FILE *fin, *fout; char ch; fin = fopen("filecopy.c","rb"); if (fin == NULL) { printf("Khong mo duoc tep nguon\n"); exit(1); } fout = fopen("fout.dat", "wb"); if (fout==NULL){ printf("Khong mo duoc tep dich\n"); exit(1); } while (!feof(fin)) putc(getc(fin), fout); fclose(fin); fclose(fout); }
  17. Hàm ferror()  Kiểm tra thao tác truy xuất trên tệp trước đó có lỗi hay không  Hàm nguyên mẫu int ferror(FILE *fp);  Kết quả  Bằng 0, nếu thao tác trước đó không có lỗi  Khác 0, ngược lại
  18. Hàm rewind()  Đưa con trỏ về đầu tệp  Hàm nguyên mẫu int rewind(FILE *fp);
  19. Hàm getw() và putw()  Đọc/ghi các số nguyên 2 byte  Hàm nguyên mẫu int getw(FILE *fp); int putw(int w, FILE *fp);
  20. Hàm fgets() và fputs()  Đọc/ghi các chuỗi kí tự  Hàm nguyên mẫu char *fgets(char *str, int num, FILE *fp); char *fputs(char *str, FILE *fp);
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2