Tải bản đầy đủ (.pdf) (27 trang)

Bài giảng môn học Tin đại cương: Bài 5 - Lý Anh Tuấn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (506.64 KB, 27 trang )

Môn học Tin đại cương
Lý Anh Tuấn
Bộ môn Khoa học máy tính, Khoa Công nghệ
thông tin, Trường đại học Thủy Lợi

1


Buổi 5: Đọc ghi dữ liệu với tệp tin
& Cấu trúc lệnh rẽ nhánh


C++ cung cấp các lớp sau để thực hiện đọc
ghi dữ liệu với tệp tin






ofstream: Lớp ghi dữ liệu vào tệp tin
ifstream: Lớp đọc dữ liệu từ tệp tin
fstream: Lớp đọc và ghi dữ liệu với tệp tin

Các lớp này được định nghĩa trong thư viện
fstream và đặt trong không gian tên std

2


Đọc ghi dữ liệu với tệp tin




Tạo đối tượng và gắn nó với một tệp tin trên đĩa


Cách 1: Tạo trước một đối tượng chưa gắn với tệp tin cụ thể
nào. Sau đó dùng phương thức open để mở tệp tin và gắn
nó với đối tượng vừa tạo.
Cú pháp:
<Lớp> đối_tượng;
đối_tượng.open(tên_tệp, chế_độ);
Ví dụ:
ifstream tepdl; // tạo đối tượng có tên tepdl để đọc
ofstream tepdl; // tạo đối tượng có tên tepdl để ghi
tepdl.open(“vidu.txt"); // mở tệp vidu.txt và gắn với
tepdl
3


Đọc ghi dữ liệu với tệp tin


Cách 2: Mở một tệp tin đồng thời gắn tệp tin với tên
đối tượng
Cú pháp
<Lớp> đối_tượng(tên_tệp, chế_độ);
Ví dụ:
ifstream tepdl("vidu.txt"); // mở tệp tin
vidu.txt gắn với đối tượng tepdl để đọc
ofstream tepdl("vidu.txt”); // mở tệp tin

vidu.txt gắn với đối tượng tepdl để ghi



Sau khi mở tệp tin và gắn với đối tượng tepdl, mọi
thao tác trên tepdl cũng chính là làm việc với tệp
vidu.txt
4


Đọc ghi dữ liệu với tệp tin






Sau khi đã gắn một đối tượng với một tệp tin
trên đĩa, có thể sử dụng đối tượng tương tự
như sử dụng cin, cout.
Nếu thay cout bởi tên đối tượng, dữ liệu sẽ
được ghi vào tệp tin mà đối tượng đại diện
thay vì in ra màn hình
Tương tự, nếu thay cin bởi tên đối tượng,
dữ liệu sẽ được đọc từ tệp thay vì từ bàn
phím
5


Đọc ghi dữ liệu với tệp tin



Đóng tệp tin:




Sử dụng hàm close() để đóng tệp tin và giải
phóng đối tượng
Ví dụ: tepdl.close();

Kiểm tra việc mở tệp tin




Sử dụng hàm is_open(): hàm này sẽ trả về giá
trị true nếu việc mở tệp tin thành công
Sử dụng hàm fail(): hàm này sẽ trả về giá trị
true nếu việc mở tệp tin thất bại
6


Đọc ghi dữ liệu với tệp tin


Ví dụ 1;
ifstream tepdl(“vidu.txt");
if (tepdl.is_open()){
/* thành công, tiếp tục công việc */

}



Ví dụ 2:
ifstream tepdl("vidu.txt");
if (tepdl.fail()){
cout << “Khong mo duoc tep tin";
exit(1);
}
/* thành công, tiếp tục công việc */
7


Đọc ghi dữ liệu với tệp tin


Kiểm tra việc hết tệp:




Khi đọc dữ liệu, con trỏ tệp sẽ chuyển dần về cuối
tệp, khi con trỏ ở cuối tệp hàm eof() sẽ trả về
giá trị true

Ví dụ:
while (! tepdl.eof() )
{
/* đọc dữ liệu từ tệp */

}
8


Ví dụ

9


Ví dụ

10


Cấu trúc lệnh rẽ nhánh




Các cấu trúc lệnh
Câu lệnh if
Câu lệnh switch

11


Câu lệnh (Nhắc lại)









Câu lệnh trong C++ được thiết lập từ các từ
khoá và các biểu thức …
Câu lệnh luôn luôn được kết thúc bằng dấu
chấm phẩy
Các câu lệnh được phép viết trên cùng một
hoặc nhiều dòng
Câu lệnh gồm nhiều lệnh được bao bởi cặp
dấu ngoặc {} và được gọi là khối lệnh.
12


Cấu trúc lệnh rẽ nhánh


Các cấu trúc lệnh cơ bản của chương
trình




Cấu trúc tuần tự: Thực hiện các câu lệnh
một cách tuần tự từ trên xuống dưới
Cấu trúc lựa chọn: Chọn thực hiện một
nhóm lệnh dựa trên một điều kiện nào đó
- câu lệnh if, câu lệnh switch


13


Câu lệnh if
Sử dụng khi phải lựa chọn có thực hiện công việc hay không
hoặc khi phải lựa chọn thực hiện một trong hai việc


Câu lệnh if dạng 1




Cú pháp:
if (Điềukiện) Lệnh1;
Trong đó:
- Điềukiện là một biểu thức lôgíc cho kết quả true
(đúng) hoặc false (sai)
- Lệnh1 có thể là một lệnh đơn hoặc một lệnh
ghép (khối lệnh)
14


Câu lệnh if


Lưu đồ

Điềukiệ

n

sai

đúng
Lệnh1

Câu lệnh if dạng 1
15


Câu lệnh if


Sự thực hiện:






Tuỳ theo Điềukiện là đúng hay sai mà quyết
định có thực hiện Lệnh1 hay không.

Nếu Điềukiện là đúng thì thực hiện Lệnh1
rồi chuyển sang thực hiện lệnh kế tiếp phía
dưới.
Nếu Điềukiện là sai thì không thực hiện
Lệnh1 mà chuyển ngay sang lệnh kế tiếp.


16


Câu lệnh if


Ví dụ 1: câu lệnh if dạng 1



Ví dụ 2: câu lệnh if và khối lệnh

17


Câu lệnh if


Câu lệnh if dạng 2




Cú pháp:
if (Điềukiện) Lệnh1;
else Lệnh2;
Trong đó:
- Điềukiện là một biểu thức lôgíc cho kết quả true
(đúng) hoặc false (sai)
- Lệnh1, Lệnh2 có thể là một lệnh đơn hoặc một

lệnh ghép (khối lệnh)
18


Câu lệnh if


Lưu đồ:

Điềukiện

sai

đúng

Lệnh1

Lệnh2

Câu lệnh if dạng 2
19


Câu lệnh if


Sự thực hiện:







Tuỳ theo Điềukiện là đúng hay sai để quyết
định thực hiện một trong hai lệnh: Lệnh1 hoặc
Lệnh2.
Nếu Điềukiện là đúng thì thực hiện Lệnh1,
không thực hiện Lệnh2.

Ngược lại, nếu Điềukiện là sai thì không thực
hiện Lệnh1 mà thực hiện Lệnh2.

20


Câu lệnh if


Ví dụ 1: câu lệnh if dạng 2



Ví dụ 2: câu lệnh if lồng nhau

21


Câu lệnh switch



Sử dụng khi phải lựa chọn thực hiện một việc trong nhiều việc
Cú pháp:
switch (biểuthức)
{
case hằng1 :
Nhóm lệnh 1;
break;
case hằng2 :
Nhóm lệnh 2;
break;
….
[default Nhóm lệnh mặc định;]
}
22


Câu lệnh switch


Trong đó:







biểuthức: phải có kiểu nguyên hoặc kí tự
hằng1, hằng2,… : được tạo từ các hằng
nguyên hoặc kí tự

Các nhóm lệnh không cần bao bởi cặp dấu
{} và có thể rỗng
Nhánh default có thể có hoặc không

23


Câu lệnh switch


Sự thực hiện:
Tuỳ theo giá trị của biểu thức bằng hằng nào trong
các hằng: hằng1, hằng2,… mà quyết định thực
hiện nhóm lệnh tương ứng trong các nhóm lệnh:
Nhóm lệnh 1, Nhóm lệnh 2, …
 Khi đang thực hiện một nhóm lệnh nếu gặp lệnh
break, chương trình sẽ ra khỏi lệnh switch
 Trong trường hợp biểu thức không bằng hằng nào:
nếu có default thì thực hiện nhóm lệnh mặc định
sau default nếu không có thì kết thúc


24


Câu lệnh switch


Ví dụ 1: Chuyển đổi giữa lệnh switch và lệnh if


25


×