Bài giảng Phương pháp lập trình: Bài 11 - TS. Ngô Hữu Dũng

42 9 0
Bài giảng Phương pháp lập trình: Bài 11 - TS. Ngô Hữu Dũng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Phương pháp lập trình: Bài 11 do TS. Ngô Hữu Dũng biên soạn trình bày các nội dung sau: giới thiệu, streams và files, streams (dòng nhập xuất), text streams, binary stream,...Mời các bạn cùng tham khảo để nắm chi tiết nội dung của bài giảng!

TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Phương pháp lập trình Tập tin TS Ngơ Hữu Dũng GiỚI THIỆU  C/C++ hỗ trợ hệ thống nhập xuất: Một hệ thống thừa kế từ ngôn ngữ C  Một hệ thống nhập xuất hướng đối tượng C++  Phương pháp lập trình - Tập tin Streams Files  Hệ thống nhập xuất C Cung cấp giao diện (interface) quán độc lập với thiết bị thật mà chương trình tương tác  cung cấp mức độ trừu tượng lập trình viên thiết bị nhập xuất Sự trừu tượng gọi stream thiết bị thật gọi file  Phương pháp lập trình - Tập tin Streams (dòng nhập xuất)   Hệ thống file C thiết kế để làm việc với nhiều loại thiết bị khác terminals (thiết bị đầu cuối), loại ổ đĩa, băng từ, Hệ thống file chuyển đổi loại thành thiết bị logic gọi stream Tất stream có hành vi Phương pháp lập trình - Tập tin Streams (dòng nhập xuất)   Stream độc lập với thiết bị nên hoạt động stream ghi vào tập tin đĩa dùng để ghi vào loại thiết bị khác console (màn hình) Có hai loại stream: Văn (text)  Nhị phân (binary)  Phương pháp lập trình - Tập tin 3.1 Text Streams   Một text stream chuổi ký tự Trong text stream, số ký tự bị chuyển đổi tùy thuộc mơi trường Ví dụ, ký tự newline ('\n') bị đổi thành cặp ký tự carriage return/linefeed (ký tự xuống dòng đầu dòng) Phương pháp lập trình - Tập tin 3.1 Text Streams  Khơng có quan hệ một-một ký tự viết (hay đọc) ký tự thiết bị Do số ký tự viết (hay đọc) khác số số ký tự thiết bị Phương pháp lập trình - Tập tin 3.2 Binary Streams  Một binary stream chuỗi bytes tương ứng một-một với chuổi bytes thiết bị Nghĩa khơng có chuyển đổi xảy Do đó, số bytes viết (hay đọc) với số bytes thiết bị ngồi Phương pháp lập trình - Tập tin FILES    Một file tập tin đĩa, terminal, hay máy in Để tạo kết nối (associate) stream với file ta dùng hoạt động mở (open) Khi file mở, thơng tin trao đổi file chương trình Phương pháp lập trình - Tập tin FILES    Không phải tất file có khả Ví dụ, tập tin đĩa (file) hỗ trợ truy xuất ngẫu nhiên máy in (cũng file) khơng thể “Tất stream file khơng" Phương pháp lập trình - Tập tin Hàm rewind()  Hàm rewind() đặt lại trỏ định vị trí bên tập tin đầu tập tin  Nó lấy trỏ tập tin làm đối số  Cú pháp: rewind(fp ); Phương pháp lập trình - Tập tin Hàm ferror()  Hàm ferror() xác định liệu thao tác tập tin có sinh lỗi hay khơng  Vì thao tác đặt lại tình trạng lỗi, hàm ferror() phải gọi sau thao tác; không, lỗi bị  Nguyên mẫu hàm là: int ferror(FILE *fp); Phương pháp lập trình - Tập tin Xóa Tập Tin  Hàm remove() xóa tập tin cho  Nguyên mẫu hàm là: int remove(char *filename); Phương pháp lập trình - Tập tin Làm Sạch stream Hàm fflush() làm vùng đệm chép có vùng đệm tùy theo kiểu tập tin Một tập tin mở để đọc có vùng đệm nhập liệu trống, tập tin mở để ghi vùng đệm xuất ghi vào tập tin Nguyên mẫu hàm là: int fflush(FILE *fp); Hàm fflush(), khơng có đối số, làm tất Phương pháp lập trình - Tập tin tập tin mở để xuất Các Stream Chuẩn Mỗi chương trình C bắt đầu thực thi DOS, hệ điều hành tự động mở stream đặc biệt: • Nhập chuẩn (stdin) • Xuất chuẩn (stdout) • Lỗi chuẩn (stderr) • Máy in chuẩn (stdprn) • Thiết bị phụ trợ chuẩn (stdaux) Phương pháp lập trình - Tập tin Con Trỏ Kích Hoạt Hiện Hành  Một trỏ trì cấu trúc FILE để lần theo vị trí nơi mà thao tác nhập/xuất diễn  Mỗi ký tự đọc từ hay ghi vào stream, trỏ kích hoạt hành (gọi curp) tăng lên  Vị trí hành trỏ tìm thấy trợ giúp hàm ftell()  Nguyên mẫu hàm là: long int ftell(FILE *fp); Phương pháp lập trình - Tập tin Đặt Lại Vị Trí Hiện Hành - Hàm fseek() định lại vị trí curp dời số byte tính từ đầu, từ vị trí hành hay từ cuối stream tùy vào vị trí qui định gọi hàm fseek() Nguyên mẫu hàm là: int fseek (FILE *fp, long int offset, int origin); Phương pháp lập trình - Tập tin Đặt Lại Vị Trí Hiện Hành -  origin định vị trí bắt đầu tìm kiếm phải có giá trị sau: Origin SEEK_SET hay SEEK_CUR hay SEEK_END hay Vị trí tập tin Bắt đầu tập tin Vị trí trỏ tập tin hành Cuối tập tin Phương pháp lập trình - Tập tin fprintf() fscanf()-1 Hệ thống nhập xuất có vùng đệm bao gồm hàm fprintf() fscanf() tương tự hàm printf() scanf() ngoại trừ chúng thao tác tập tin Nguyên mẫu hàm là: int fprintf(FILE * fp, const char *control_string, ); int fscanf(FILE *fp, const char *control_string, ); Phương pháp lập trình - Tập tin fprintf() fscanf() -  Mặc dù fprintf() fscanf() cách dễ luôn hiệu  Mỗi lời gọi phải thêm khoảng thời gian overhead, liệu ghi theo dạng ASCII có định dạng khơng phải theo định dạng nhị phân  Vì vậy, tốc độ độ lớn tập tin vấn đề đáng ngại, fread() fwrite() lựa chọn tốt Phương pháp lập trình - Tập tin int GhiFileMangSV(char* file, SinhVien SV[], int n) { FILE* f; //khai báo trỏ file f = fopen(file, "wb"); // mở file nhị phân if(!f) return 0; for(int i=0; i0) //doc file i++; } n = i; fclose(f); // đóng file return 1; } Phương pháp lập trình - Tập tin Bài tập Lý thuyết       Có hai kiểu stream stream stream _ Các tập tin mở đóng lại chương trình bị treo hay kết thúc bất thường.(Đúng /Sai) Hàm _ mở stream để dùng liên kết tập tin với stream Hàm dùng để ghi ký tự vào tập tin Hàm fgets() xem ký tự sang dòng phần chuỗi (Đúng / Sai) Hàm đặt lại vị trí trỏ định vị bên tập tin đầu tập tin Phương pháp lập trình - Tập tin Bài tập Lý thuyết  Mỗi ký tự đọc hay ghi từ stream, _ tăng lên  Các tập tin mà hàm fread() fwrite() thao tác phải mở chế độ  Vị trí hành trỏ kích hoạt hành tìm thấy trợ giúp hàm Phương pháp lập trình - Tập tin Bài tập thực hành thêm Viết chương trình để nhập liệu vào tập tin in theo thứ tự ngược lại Viết chương trình để truyền liệu từ tập tin sang tập tin khác, loại bỏ tất nguyên âm (a, e, i, o, u) Loại bỏ nguyên âm dạng chữ hoa lẫn chữ thường Hiển thị nội dung tập tin Viết chương trình C để chép nội dung tập tin vào tập tin khác loại trừ từ a, an, the Viết chương trình C để nhập vào hai chuỗi số Lưu trữ chuỗi hai tập tin riêng biệt Sắp xếp chuỗi tập tin Trộn hai chuỗi vào một, xếp lưu lại chuỗi kết vào tập tin Hiển thị nội dung tập tin Phương pháp lập trình - Tập tin ... dòng) Phương pháp lập trình - Tập tin 3.1 Text Streams  Khơng có quan hệ một-một ký tự viết (hay đọc) ký tự thiết bị Do số ký tự viết (hay đọc) khác số số ký tự thiết bị Phương pháp lập trình -. .. *fp); Phương pháp lập trình - Tập tin Hàm rewind()  Hàm rewind() đặt lại trỏ định vị trí bên tập tin đầu tập tin  Nó lấy trỏ tập tin làm đối số  Cú pháp: rewind(fp ); Phương pháp lập trình - Tập... đọc/ghi Phương pháptin lập trình - Tậpbản tin Nối tạo tập văn để đọc/ghi  Ví dụ: FILE *fp; if((fp = fopen("test.txt","w")) == NULL) { cout

Ngày đăng: 08/05/2021, 14:08

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan