
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền CHƯƠNG 9 TẬP TIN (FILE) 1. GiỚI THIỆU • C/C++ hổ trợ 2 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ủa C++. 2. Streams và Files • Hệ thống nhập xuất của C – Cung cấp một giao diện (interface) nhất quán độc lập với thiết bị thật sự mà chương trình tương tác. – cung cấp một mức độ trừu tượng giữa lập trình viên và thiết bị nhập xuất. Sự trừu tượng này được gọi là stream và thiết bị thật sự được gọi là file. 3. Streams (dòng nhập xuất) • Hệ thống file của C được thiết kế để làm việc với nhiều loại thiết bị khác nhau như terminals (thiết bị đầu cuối), các loại ổ đĩa, băng từ, ... • Hệ thống file chuyển đổi mỗi loại thành một thiết bị logic gọi là stream. Tất cả stream có cùng hành vi 3. Streams (dòng nhập xuất) • Stream độc lập với thiết bị nên cùng một hoạt động trên stream như ghi vào một tập tin trên đĩa cũng có thể dùng để ghi vào loại thiết bị khác như console (màn hình). • Có hai loại stream: – Văn bản (text) – Nhị phân (binary). 3.1. Text Streams • Một text stream là một chuổi các ký tự. Trong một text stream, một số ký tự có thể bị chuyển đổi tùy thuộc môi trường. • Ví dụ, ký tự newline ('\n') có thể bị đổi thành cặp ký tự carriage return/linefeed (ký tự xuống dòng và về đầu dòng). 3.1. Text Streams • Không có quan hệ một-một giữa các ký tự được viết (hay đọc) và những ký tự trên các thiết bị ngoài. Do đó số ký tự được viết (hay đọc) có thể khác số số ký tự trên thiết bị ngoài. 3.2. Binary Streams • Một binary stream là một chuổi bytes tương ứng một-một với chuổi bytes trên thiết bị ngoài. Nghĩa là không có sự chuyển đổi xảy ra. Do đó, số bytes được viết (hay đọc) thì bằng với số bytes trên thiết bị ngoài. 4. FILES • Một file có thể là một tập tin trên đĩa, một terminal, hay máy in. • Để tạo kết nối (associate) giữa một stream với một file ta dùng hoạt động mở (open). • Khi file được mở, thông tin có thể được trao đổi giữa file và chương trình. 4. FILES • Không phải tất cả file đều có cùng khả năng như nhau. • Ví dụ, một tập tin trên đĩa (file) có thể hỗ trợ truy xuất ngẫu nhiên trong khi đó máy in (cũng là file) thì không thể. • “Tất cả stream là như nhau nhưng file thì không. 4. FILES • Để ngắt kết nối giữa một stream với một file ta dùng hoạt động đóng (close). Nếu đóng một file đang mở cho xuất (output) thì nội dung của stream tương ứng được viết ra thiết bị ngoài. • Qúa trình này được gọi là flushing và đảm bảo là không có thông tin bị để lại trong vùng đệm (buffer). 4. FILES • Tất cả file được tự động đóng khi chương trình mở chúng kết thúc bình thường. Files không được đóng khi chương trình mở chúng bị kết thúc bất thường như bị treo (halt) hay khi chương trình thực hiện hàm abort(). • Mỗi stream liên đới với một file có một cấu trúc kiểu FILE. 4.1. Cơ bản về hệ thống file Các hàm liên quan đến file trong thư viện stdio.h Tên hàm Chức năng Tên hàm Chức năng fopen( ) Mở một file fclose( ) Đóng một file. putc( ) Viết một ký tự đến một file. fputc( ) Giống như putc() . 4.1. Cơ bản về hệ thống file Tên Chức năng hàm getc( ) Đọc một ký tự từ một file. fgetc( ) Giống như getc() . fgets( ) Đọc một chuổi từ một file. fputs( ) Viết một chuổi đến một file. fseek( ) Tìm một byte trong một file. 4.1. Cơ bản về hệ thống file Tên Chức năng hàm ftell( ) Trả về vị trí hiện hành của của file indicator. feof( ) Trả về true nếu duyệt đến cuối file (end-of- file). ferror( ) Trả về true nếu một lỗi xảy ra. rewind( ) Đưa indicator về đầu. remove( Xóa một file. ) fflush( ) Xả hết vùng đệm của file. 4.2. Con trỏ file (File pointer) • Con trỏ file là một cấu trúc kiểu FILE, trỏ đến thông tin về file như tên file, trạng thái, và vị trí hiện hành của file. • Con trỏ file được dùng bởi stream tương ứng để thực hiện các hoạt động nhập xuất trên file. • Cú pháp khai báo: FILE *fp; 4.3. Mở file • Hàm fopen() mở một stream và liên kết một file với stream đó. Hàm trả về một con trỏ file trỏ đến tập tin được mở. • Cú pháp: FILE *fopen(const char *filename, const char *mode); • filename: chứa tên /đường dẫn của file • mode: cho biết mở file theo mode nào. 4.3. Mở file • Các mode để mở tập tin – r Nếu tập tin được mở thành công, hàm fopen() nạp nó vào bộ nhớ và trả về con trỏ trỏ đến ký tự đầu tiên của tập tin. Ngược lại, hàm fopen() trả về NULL – w Nếu tập tin tồn tại, nội dung của nó sẽ bị ghi đè 4.3. Mở file • a Nếu tập tin được mở thành công hàm fopen() nạp nó vào bộ nhớ và trả về con trỏ trỏ đến ký tự cuối cùng của tập tin. Nếu tập tin không tồn tại, một tập tin mới được tạo. Trả về NULL nếu không thể mở tập tin. • r+ Nếu tập tin được mở thành công, hàm fopen() nạp nó vào trong bộ nhớ. Trả về NULL nếu không thể mở tập tin. 4.3. Mở file • a+ Nếu tập tin được mở thành công, hàm fopen() nạp nó vào bộ nhớ và trả về con trỏ trỏ đến ký tự đầu tiên của tập tin. Nếu tập tin không tồn tại, một tập tin mới được tạo. Trả về NULL nếu không thể mở tập tin. • Các hoạt động có thể làm trên tập tin: đọc, ghi thêm nội dung mới vào cuối tập tin. Không thể sửa đổi nội dung đang có trong tập tin. ...
Tìm kiếm theo từ khóa liên quan:
Ngôn ngữ lập trình C Học lập trình C Ngôn ngữ lập trình Phương pháp lập trình Bài giảng phương pháp lập trình Lý thuyết lập trìnhTà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 312 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 291 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 244 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 -
Giáo trình Lập trình logic trong prolog: Phần 1
114 trang 224 0 0 -
101 trang 210 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 192 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 187 0 0 -
Giáo trình Lập trình C căn bản
135 trang 180 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 173 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 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 141 0 0 -
14 trang 140 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 140 0 0