Truy xuất tập tin

Một phần của tài liệu Kỹ thuật lập trình (Trang 79 - 80)

Như đê giới thiệu, có hai loại tập tin trong c lă Tập tin văn bản vă tập tin nhị phđn. Tập tin văn bản chỉ có thể truy xuất tuần tự, tập tin nhị phđn cho phĩp cả thao tâc truy xuất tuần tự vă truy xuất ngẫu nhiín.

1. Truy xuất dữ liệu trín tập tin nhị phđn:

.4

Câc hăm dưới đđy được khai trong tệp <stdio.h>

int putw(int n, FILE *fp) : ghi giâ trị n lín tệp fp dưới dạng 2 byte (kiểu

int), trả về sổ ngun được ghi, nếu có lỗi hăm trả về EOF.

int getw(FILE *fp) đọc một sổ hai byte từ tệp, nếu thănh cơng hăm trả về

số ngun đọc được, nếu có lỗi hay gặp cuối tệp hăm trả về EOF.

int fwrite(void *ptr, int size, int n, int FILE *fp) ghi n bản ghi kích

thước size byte từ vùng nhớ ptr lín tệp fp, hăm trả về số bản ghi ghi được.

int fread(void *ptr, int size , int n, FILE *fp) đọc n bản ghi kích thước

size byte từ tệp fp chứa văo vùng nhớ ptr.

Ví dụ 1: Chương trình nhập n sổ ngun từ băn phím vă ghi văo tập tin

bằng lệnh putw(), sau đó mở tập tin từ vă đọc câc giâ trị từ tập tin bằng lệnh getw() vă in ra măn hình.

# included. ostream> #include<conio.h> # included tdio. h> using namespace std; int main() 1 int í, n=5, a; FILE *fp;

fp = fopen(”D:Wsonguyen.dat","wb"); //Mo tap tin

nhi phan de ghi

if(fp==NULL) {

cout«"Khong mo duoc tap tin"; exit (0);

}

//Ghi văo tập tin n số ngun

cout<<"Nhap "<<n«"so ngun tu ban phim:

"ôendl;

for(i=0;i<n;++) {

coutô"Nhap so thu "ôi+l<<" : H ã

r

cin>>a;

putw(a,fp); //Ghi số nguyín văo tập tin

}

fclose(fp);

//Đọc câc số từ tập tin

fp = fopen("D:\\songuyen.dat","rb"); //Mo tap tin

nhi phan de doc

if(fp==NULL)

f 1

cout<<"Khơng’ mo duoc tap tin"; exit(0) ;

}

cout<<"Doc cac so ngun tu tap tin: "«endl;

i=0;

while(a=getw(fp),!feof(fp))

cout«"\nSo thu "«i + l«" : cout<<a; Í++; } ’ fclose(fp); system("pause"); return 0; }

Ví dụ 2: Chương trình thực hiện cơng việc giống ví dụ 1 nhưng sử dụng

lệnh fwrite() để ghi dữ liệu văo tập tin vă fread() để đọc dữ liệu từ tập tin. Đoạn lệnh giống Ví dụ 1. Ta thay lệnh :

putw(a,fp);

Bằng: fwrite (&a, sizeof ( int) , 1, fp) ;Để ghi câc số nhập từ băn

phím văo file. a=getw (fp) ;

Bằng: fread (&a, sizeof (int) , 1, fp) ;Để đọc câc số nguyín từ file 'vă in ra măn hình

Một phần của tài liệu Kỹ thuật lập trình (Trang 79 - 80)

Tải bản đầy đủ (PDF)

(88 trang)