Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
294,2 KB
Nội dung
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 Mục đích Biết thao tác xử lý tệp tạo tệp, đọc ghi tệp… Xử lý tệp truy cập Xử lý tệp truy cập ngẫu nhiên Nội dung Khái niệm tệp Các hàm vào tệp Các hàm thao tác vào tệp mức thấp Khái niệm tệp Đường dẫn truy cập tệp Thẻ tệp (file handle) Các thông tin tệp Các kiểu vào với tệp Khái niệm tệp Đường dẫn truy cập tệp ổ đĩa Tên thư mục Tên tệp Phần mở rộng Tên Thẻ tệp (file handle) số nguyên hệ điều hành trả lại tạo hay mở tệp Dùng để truy cập đến cấu trúc lưu trữ thông tin cần thiết cho thao tác với tệp Là Khái niệm tệp Các thông tin tệp thuộc tính tệp mở Kích thước trạng thái tệp Chế độ truyền: nhị phân văn Các Các kiểu vào với tệp hàm vào theo dòng qua vùng đệm Các hàm vào tệp mức thấp, không qua vùng đệm Các Các hàm vào tệp Tên hàm Chức fopen() Mở tệp fclose() Đóng tệp putc() Ghi kí tự lên tệp getc() Đọc kí tự từ tệp fseek() Di chuyển trỏ tệp đến byte định fprintf() Ghi lên tệp fscanf() Nhập liệu từ tệp fflush() ghi tệp nội dung vùng đệm feof() Trả giá trị khác trỏ cuối tệp ferror() Trả giá trị khác có lỗi xuất thao tác rewind() Đưa trỏ đầu tệp Con trỏ tệp Là trỏ kiểu FILE Chỉ đến vùng nhớ chứa thông tin liên quan đến tệp Tên tệp Tình trạng Vị trí làm việc Con trỏ tệp Chế độ Ý nghĩa “r” Mở tệp để đọc, trả lại lỗi tệp không tồn “w” Mở tệp để ghi, tệp tồn tại, nội dung bị xóa “a” Mở tệp để ghi thêm vào cuối tệp “r+” Mở tệp để đọc ghi, fopen trả lại lỗi tệp không tồn “w+” Mở tệp để đọc ghi, nội dung bị xóa tệp tồn “a+” Mở tệp để ghi vào cuối tệp “t” Mở tệp theo kiểu văn “b” Mở tệp theo kiểu nhị phân Hàm fopen() Mở tệp Hàm nguyên mẫu: FILE *fopen(const char *filename, const char *mode); xâu kí tự gồm tên tệp đường dẫn tới tệp mode trạng thái làm việc tệp sau mở filename Kết NULL thất bại Con trỏ tệp mở tệp thành công Hàm getw() putw() Đọc/ghi số nguyên byte Hàm nguyên mẫu int getw(FILE *fp); int putw(int w, FILE *fp); Hàm fgets() fputs() Đọc/ghi chuỗi kí tự Hàm nguyên mẫu char *fgets(char *str, int num, FILE *fp); char *fputs(char *str, FILE *fp); Hàm fread() fwrite() Đọc/ghi khối liệu Hàm nguyên mẫu int fread(void *buffer, int so_byte, int so_muc, FILE *fp); int fwrite(void *buffer, int so_byte, int so_muc, FILE *fp); Ví dụ Nhập tên tệp văn bản; đọc in nội dung lên hình /*readfile.c*/ #include #include void main(){ FILE *fp; char filename[50]; char w[300]; printf("Nhap ten tep:"); gets(filename); fp = fopen(filename,"r"); if (!fp){ printf("Khong mo duoc tep nguon\n"); exit(1); } while (fgets(w,300,fp)) puts(w); fclose(fp); getch(); } Ví dụ Lập tệp văn in lại 50 số nguyên tố đầu tiên, dòng 10 số Đọc in nội dung tệp /*filent.c*/ #include #include int ktnt(int); void laptep(char *); void doctep(char *); void main(){ int chon; printf("Lap tep go 1, doc tep go 0\n"); scanf("%d",&chon); if (chon==1) laptep("nto.dat"); if (chon==0) doctep("nto.dat"); getch(); } int ktnt(int k){ int i; if (k==1||k==0) return 0; for (i=2; i1; } void laptep(char *filename){ FILE *f; int i; int k = 2; f = fopen(filename,"w"); if (!f){ printf("Khong tao duoc tep.\n"); exit(1); } for (i=1; i