Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2
➤ Gửi thông báo lỗi ⚠️ Báo cáo tài liệu vi phạmNội dung chi tiết: Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2
Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2
CHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp v Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 vào bộ nhớ.Trong c các thao táctệp được thực hiện nhờ các hàm thư viện. Các hàm này được chia thành hai nhóm: cấp 1 và cấp 2. Mỗi hàm (dù cấp 1 hay cấp 2) đều có thể truy xuất theo cả hai kiểu nhị phân và vãn bản (xem §2). Tuy nhiên việc chọn kiểu phù hợp cho mỗi hàm là cần thiết.Các hàm cấp 1 (còn Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 gọi.là các hàm nhập/xuất hệ thống) thực hiện việc đọc/ghi như DOS. Đặc trưng cơ bản của chúng là:+ Không có dịch vụ nhập xuất riêng cho từng kiổu dữ lKỹ thuật lập trình C cơ sở và nâng cao: Phần 2
iệu mà chỉ có dịch vụ đọc ghi một dẫy các byte. Như vậy để ghi một số thực lên đỉa ta phải dùng dịch vụ ghi 4 byte, để ghi 10 số nguyên ta dùng dịch yCHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp v Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 cấp 2 được xây dựng từ các hàm cấp 1 nên dễ sừ dụng và có nhiều khả nâng hơn:+ Có dịch vụ truy xuất cho từng kiổu dữ liệu. Cụ thể sẽ có các hàm nhập xuất ký tự, chuỗi, số nguyên, sô' thực, cấu trúc,...+ c tự động cung cấp một vùng đệm. Mổi lần đọc/ghi thì thường tiến hành trên vùng dệm chứ không hẳ Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 n trên tệp. Chẳng hạn khi ghi một số nguyCn thl số dược đưa vào vùng đêm và khi nào đầy thì vùng đẹm mới dược dẩy lôn đĩa. Khi dọc, thông tin được lấyKỹ thuật lập trình C cơ sở và nâng cao: Phần 2
từ vùng đệm, và chĩ khi vùng độm đã trống rỗng (hì máy mới lâ'y dữ liệu từ đĩa chứa vào vùng dẹm. Việc sử dụng vùng độm sẽ giảm sớ lần nhập xuất ĩrồnCHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp v Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 2 làm việc với tệp thông qua một biến con trỏ tệp.Do các hàm cấp 2 có nhiều kiểu truy xuất và dề dùng hơn so với các hàm câp 1, nốn trong chương trình c các hàm cấp 2 dược ưa chuông hơn. Mặt khác vì các hàm cấp 1 ờ mức độ sâu hơn, gần DOS hơn nên tốc độ truy nhập SC nhanh hơn.Dưới đây trong các mục Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 §2 - §8 sẽ trình bầy hộ thống truy xuất cấp 2. Trong các mục còn lại sẽ xét đến các hàm vào/ra cấp 1.267ệl.KĩỂU NHẬP XƯẤT NHỊ PHÂN VÀ VÃN BẢN________Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2
__________________Trước khi giới thiệu các kiểu xuất nhập nhị phân và vấn bản chúng ta cũng cần biết cấu trúc chung của một tệp tin trên đĩa. Một tệp CHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp v Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 ộp.1.1.Kiếu nhị phán.1.1.1.Bảo toàn dữ tiêu. Trong quá trình nhập xuất dữ liêu không bị biến đổi. Dữ liêu ghi trên tệp theơ các byte nhị phân như trong bộ nhớ.1.1.2.Mâ kết thúc tệp.Trong khi đọc nếu gặp cuối têp thì ta nhận được mấ kết thúc tệp EOF (định nghĩa trong stdio.h bằng -1) và hàm feof cho Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 giá trị khác không. Tại sao lại chọn số -1 làm mã kết thúc lệp?:Lý dừ rất đơn giản: Nếu chưa gặp cuối tệp thì sẽ đọc dược một byte có giá trị từ 0 đếnKỹ thuật lập trình C cơ sở và nâng cao: Phần 2
255. Như vậy giá trị -1 sỗ không trừng vớì bất kỳ byte nào đọc được từ tộp.1.2.Kiểu vần bản. Kiểu nhập xuâ't văn bản chỉ khác kíổu nhị phân khi xử lýCHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp v Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 được chuyển thành 2 ký tự CR (mã 13) vàLF.’■_ Khi dọc, 2 ký tự liên liếp CR và LF trớn tộp chỉ cho ta một ký tự LF.Ví dụ xét hàmfputc(10,fp);Nếu tệp fp mờ theo kiểu nhị phân, hàm sẽ ghi lôn tệp một kỷ tự mấ 10. Nhung nếu fp mở theo kiểu vàn bản thì hàm ghi lôn tệp hai mã là 13 và 10.Điều này cốt đổ Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 phù họp vói DOS. vì các dòng trên tộp vãn bản cùa DOS được kết thúc bởi hai mã 13 và 10.1.2.2.Mã kết thúc tệp.>Trong khi đọc nếu gặp ký tự có mã 26 hoKỹ thuật lập trình C cơ sở và nâng cao: Phần 2
ặc cuối tệp thl ta nhân dược mã kết thức tệp EOF (số -1) và hàm feof(fp) cho giá trị khác không (số 1). Điều này cốt dể phù hợp với một số hẹ soạn thảCHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp v Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 úc như các tệp văn bàn chuẩn cùa DOS. Các hộ soạn thảo của c, Pascal, Foxpro, Sidekick cũng tạo ra các tệp như vậy. Như vây cổ thể dùng268cộp vãn bản dd nhạn kốt quả từ mdt chương trình c dùng cho chương-trình Pascal. Một ứng dụng khác của kiểu nhập xuất văn. bản là: Các kết qua của chương trình có Kỹ thuật lập trình C cơ sở và nâng cao: Phần 2 thổ dưa ra một lộp vàn bản, rồi in. tệp này ờ bất kỳ; chỏ nào khác có máy in.,...L3.VÍ dụ minh hoạ.\. i '11’Chương trình sau tạo 2 tệp có tôn Là vb vàKỹ thuật lập trình C cơ sở và nâng cao: Phần 2
np. Trong chức/ng trình dùng các hàm: ..,■■4-fopen để mở têp, .• ••CHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp vCHƯƠNG ioTHAO TÁC TRÊN CÁC TỆP TINChương này trình bày các thao tác trên tệp như: tạo một tệp mới, ghi dữ liệu từ bộ nhớ lên tệp. đọc dữ liệu từ tệp vGọi ngay
Chat zalo
Facebook