Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
5,18 MB
Nội dung
[...]... Mở tập tin chỉ để ghi vào đĩa (nếu đã có thì nội dụng tập tin cũ sẽ bị xóa) “w+” Mở một tập tin mới để đọc, ghi (nếu đã có thì nội dụng tập tin cũ sẽ bị xóa) “r” Mở tập tin đã có chỉ để đọc từ đĩa vào bộ nhớ “r+” Mở tập tin đã có trên đĩa để đọc hoặc ghi “a” Mở tập tin để thêm vào (append) cuối tập tin (không đọc được) “a+” Mở tập tin để đọc, ghi Nếu tập tin đã có thì nối thêm Nếu chưa thì tạo tập tin. .. truc\n", result); } free (buffer); } fclose (f); } int rename(“ten_tap _tin_ cu”, “ten_tap _tin_ moi”); Đổi tên tập tin ten_tap _tin_ cu: khai báo đường dẫn như fopen ten_tap _tin_ moi: không cần đường dẫn, mặc định cùng chung thư mục với tập tin cũ Trả về 0 nếu thành công Vd: rename(“C:\\WINDOWS\\regedit.exe”,”hehe.txt”); int remove(“ten_tap _tin_ can_xoa”); Thanh cong tra ve 0; Vd: remove(“C:\\WINDOWS\\regedit.exe”);... nối thêm Nếu chưa thì tạo tập tin mới “b” Mở tập tin kiểu nhị phân (binary) “t” Mở tập tin kiểu văn bản (text) Ta có thể kết hợp các tùy chọn Ví dụ như “rt”, “wb” hay “a+t”… Ví dụ: FILE *fp; fp = fopen (“SINHVIEN.TXT”, “rt”); if (fp==NULL) { printf(“Khong mo duoc tap tin. ”); perror (“Ly do\n”); } else { printf(“Da mo duoc tap tin. ”); } int fclose (biến _tập_ tin) Để đóng tất cả các File đang mở ta còn... tính từ 0 Nếu có lỗi hàm trả về -1L fgetpos(FILE* f, fpos_t *vitri); Đánh dấu trên tập tin fpos_t là kiểu định nghĩa trong “stdio.h” *vitri là biến con trỏ lưu vị trí đánh dấu trên tập tin fsetpos(FILE* f, fpos_t *vitri) Quay lại vị trí đánh dấu sau khi đánh dấu bằng hàm fgetpos 1 Viết chương trình đọc tập tin văn bản có cấu trúc là một ma trận vuông (n*n) : Dòng đầu lưu giá trị n Các dòng... đầu lưu giá trị n Các dòng tiếp theo là mỗi dòng của ma trận Hai số kề nhau được lưu bởi khoảng trắng Ví dụ: 4 1 2 4 5 5 0 7 6 4 2 1 3 9 4 5 2 1 Viết chương trình ghép 2 tập tin văn bản (nội dụng tập tin thứ hai ghép được ghép vào tập tin thứ nhất) ... fseek(FILE *fp, long so_byte, int vt_bat_dau); Dời con trỏ tập tin đi so_byte tính từ vt_bat_dau Nếu: so_byte > 0: chuyển xuống dưới so_byte < 0 chuyển ngược lên so_byte = 0: đứng tại vt_bat_dau vt_bat_dau có thể mang một trong các giá trị sau: SEEK_SET(0): vị trí đầu tập tin SEEK_CUR(1): vị trí hiện hành SEEK_END(2): vị trí cuối tập tin long ftell(FILE *fp); Trả về vị trí hiện tại của... else printf("Loi"); } Ghi các mẫu tin lên File: int fwrite( void *pt, int size, int n, File *fp); Với pt là con trỏ trỏ tới vùng nhớ chứa dữ liệu cần ghi, size là kích thước của mẫu tin (byte), n làsố mẫu tin, fp là con trỏ File Hàm sẽ ghi n mẫu tin kích thước size byte từ vùng nhớ pt lên File fp Hàm trả về một giá trị = số mẫu tin thực sự được ghi Đọc các mẫu tin từ File: int fread( void *pt,... (“taptin.txt”, “wt”); if (fp!=NULL) fprintf(fp, “%d\n”,a ); Ví dụ về ghi dữ liệu: void taotaptin() //tao tap tin de ghi(lay du lieu bo nho de ghi len tap tin) { FILE *fp; fp=fopen("TEXT.txt","wt"); if(fp!=NULL) { char s[]=“Nguyen Van A”; float dtb = 8.5; //ghi du lieu len tap tin fprintf(fp,“Sinh vien ”); fputs (s,fp); fprintf(fp, “\nDiem trung binh %.2f”,dtb); } else printf(“Ko tao duoc tap tin\ n”... *tentaptin, “wt”); if (fp!=NULL && feof!=NULL) fscanf(fp, “%d”,&a ); Ví dụ về đọc dữ liệu phức hợp: Ta có một file text (sinhvien.txt) chứa thông tin các sinh viên, được định dạng như sau: -()tabtab MSSV (chuỗi) HoTen (chuỗi) Nam/Nu (số nguyên) NTNS (chuỗi) DTB (số thực) Ta cần viết một chương trình đọc file text trên, xuất lại ra màn hình các thông tin. .. void *pt, int size, int n, File *fp); Với pt là con trỏ trỏ tới vùng nhớ chứa dữ liệu đọc được, size là kích thước của mẫu tin (byte), n là số mẫu tin cần đọc, fp là con trỏ File Hàm sẽ đọc n mẫu tin kích thước size byte từ File fp vào vùng nhớ pt Hàm trả về một giá trị = số mẫu tin thực sự đọc được Các hàm fread, fwrite thường dùng để đọc ghi các đối tượng có cùng độ lớn như cấu trúc, số thực Ví . tập tin đã có trên đĩa để đọc hoặc ghi. “a” Mở tập tin để thêm vào (append) cuối tập tin (không đọc được) “a+” Mở tập tin để đọc, ghi. Nếu tập tin đã có thì nối thêm. Nếu chưa thì tạo tập tin. *kiểu) “w” Mở tập tin chỉ để ghi vào đĩa. (nếu đã có thì nội dụng tập tin cũ sẽ bị xóa) “w+” Mở một tập tin mới để đọc, ghi . (nếu đã có thì nội dụng tập tin cũ sẽ bị xóa). “r” Mở tập tin đã có. Bài tập Một số hàm xử lý khác Các thao tác xử lý căn bản Phân loại tập tin Giới thiệu về tập tin