
Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu tệp - Ninh Thị Thanh Tâm
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu tệp - Ninh Thị Thanh TâmNGÔN NGỮ LẬP TRÌNH C Dữ liệu kiểu tệp Ninh Thị Thanh TâmKhoa CNTT – HV Quản lý Giáo dụcMụ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ênNộ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ấpKhá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ệpKhá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ệpKhá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 đệmCác hàm vào ra tệp cơ bảnTên hàm Chức năngfopen() Mở tệpfclose() Đóng tệpputc() Ghi một kí tự lên tệpgetc() Đọc một kí tự từ tệpfseek() Di chuyển con trỏ tệp đến một byte được chỉ địnhfprintf() Ghi lên tệpfscanf() Nhập dữ liệu từ tệpfflush() ghi ra tệp nội dung trên vùng đệmfeof() Trả về giá trị khác 0 nếu con trỏ ở cuối tệpferror() Trả về giá trị khác 0 nếu có lỗi xuất hiện trong thao tácrewind() Đưa con trỏ về đầu tệpCon 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ệcCon trỏ tệpChế độ Ý 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ânHà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ôngVí dụfp = fopen(readme.txt,rt);if (fp==NULL){ printf(Khong mo duoc tep); exit(0);}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 EOFHà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 EOFVí dụ Đọc đến cuối tệp văn bảnch = getc();while (ch!=EOF) { ch = getc(fp); ...} Đọc tệp nhị phân khi gặp kí tự kết thúc tệpwhile (!feof(fp)) ch = getc(fp);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 EOFVí 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);}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ạiHàm rewind() Đưa con trỏ về đầu tệp Hàm nguyên mẫu int rewind(FILE *fp);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);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);
Tìm kiếm theo từ khóa liên quan:
Ngôn ngữ lập trình C Bài giảng Ngôn ngữ lập trình C Ngôn ngữ lập trình Dữ liệu kiểu tệp Hàm vào ra tệp Hàm thao tác vào raTài liệu có liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 313 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 306 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 292 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 246 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 245 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 241 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 230 1 0 -
101 trang 211 1 0
-
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 204 0 0 -
Thiết kế mạch logic bằng Verilog - HDL
45 trang 194 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 188 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 174 0 0 -
Thực hành ngôn ngữ lập trình C
6 trang 172 0 0 -
Báo cáo thực tập: Quản lý nhân sự & tiền lương
52 trang 160 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 154 0 0 -
Giáo trình nhập môn lập trình - Phần 22
48 trang 143 0 0 -
LUẬN VĂN: ỨNG DỤNG NGÔN NGỮ LẬP TRÌNH RÀNG BUỘC COMET VÀO BÀI TOÁN LẬP THỜI KHÓA BIỂU
43 trang 141 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 141 0 0 -
161 trang 139 1 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 130 0 0