Danh mục

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

Số trang: 33      Loại file: pdf      Dung lượng: 294.20 KB      Lượt xem: 2      Lượt tải: 0    
Hoai.2512

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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.
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ài liệu được xem nhiều: