1. Trang chủ
  2. » Cao đẳng - Đại học

Cấu trúc dữ liệu và giải thuật – Bài thực hành ôn tập

8 5 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 269,55 KB

Nội dung

[r]

(1)

ĐHSP

Ôn tập xử lý tập tin với C++

http://fit.hcmup.edu.vn/~tienttt

Cấu trúc

(2)

Text file

Dữ liệu file lưu trữ

dạng ASCII.

Ví dụ: chuỗi “AB” 12 lưu trữ

trong file có khoảng trắng chúng.

20/06/2010

3

Binary file

Dữ liệu lưu trữ dạng mã

nhị phân.

Lưu trữ liệu dạng cấu trúc, có

kích thước cố định.

Thường dùng để ghi tồn

(3)

Khai báo mở tập tin để ghi liệu

ofstream <tên biến>;

ofstream <tên biến>(<tên file>);

Ví dụ: ofstreamfout;

fout.open(“data.txt”); hoặc ofstreamfout(“data.txt”);

Ghi liệu chuẩn

 Tương tự cout

 <tên biến> <toán tử xuất (<<)>  Ví dụ: inta;

fout<<a; 20/06/2010

5

Ghi liệu dạng nhị phân

 ostream& write(char* pch,int nCount);

 ostream& write(unsigned char* puch,int nCount);  ostream& write(signed char* psch,int nCount);  Giải thích tham số

• pch,puch,psch: trỏ đến mảng ký tự lưu liệu • nCount: số byte cần ghi

(4)

Ví dụ

Ghi liệu phần tử số nguyên liên tiếp file dạng nhị phân

-int a[10];

a[0]=65;a[1]=66;a[2]=97;a[3]=99;a[4]=67; ofstream fout(“data.txt”);

int n=5;

fout.write((char*)a,n*sizeof(*a)); fout.close();

20/06/2010

7

Mở tập tin để đọc liệu

ifstream <tên biến>;

ifstream <tên biến>(<tên file>);

 Ví dụ: ifstreamfin; fin.open(“data.dat”); hoặc ifstreamfin(“data.dat”);

Đọc liệu chuẩn

 Tương tự cin

(5)

Đọc liệu dạng nhị phân

 istream& read(char* pch, int nCount);

 istream& read(unsigned char* puch, int nCount);

 istream& read(signed char* psch, int nCount); Giải thích tham số

 pch,puch,psch: trỏ đến mảng ký tự lưu liệu  nCount: số byte lớn cần đọc

20/06/2010

9

Ví dụ

Đọc liệu phần tử số nguyên liên tiếp ghi dạng nhị phân

-int a[10];

ifstream fin(“data.dat”); int n=5;

fin.read((char*)a,n*sizeof(*a)); fin.close();

(6)

Một số thao tác khác với tập tin

Lấy vị trí trỏ tập tin Khi đọc

• Dùng hàm tellg();

• Ví dụ: long pos=fin.tellg();

Khi ghi

• Dùng hàm tellp();

• Ví dụ: long pos=fout.tellp();

20/06/2010

11

Một số thao tác khác với tập tin

Di chuyển trỏ đến vị trí tập tin  Khi đọc

• Dùng hàm seekg(long sobyte, ios::xx vtbd); • Ví dụ: fin.seekg(0,ios::beg); //về đầu tập tin

 Khi ghi

• Dùng hàm seekp(long sobyte, ios::xx vtbd); • Ví dụ: fout.seekp(0,ios::end); //đến cuối tập tin

 Hằng số

(7)

Ví dụ

Tính kích thước tập tin

-long SizeOf(char *fileName) {

longend,begin;

ifstream myfile(fileName); begin = myfile.tellg(); myfile.seekg(0, ios::end); end = myfile.tellg();

myfile.close(); return end-begin; } 20/06/2010 13 fstream

Sử dụng đối tượng lớp vừa đọc vừa ghi liệu tập tin is_open(): Trả true mở, false

nếu không mở

Mở tập tin vừa đọc vừa ghi dạng nhị phân fstream f;

f.open(“data.dat”,ios::in|ios::out|ios::binar y);

ios::in, ios::out, ios::app, ios::nocreate, …

(8)

Ngày đăng: 20/04/2021, 14:53

w