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
27 trang |
Chia sẻ: phuongt97 | Lượt xem: 443 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Tin đại cương - Buổi 5: Đọc ghi dữ liệu với tệp tin & Cấu trúc lệnh rẽ nhánh - Lý Anh Tuấn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
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
2
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
3
Đọ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:
đố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
4
Đọ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
đố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
5
Đọ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
6
Đọ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
7
Đọ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 */
8
Đọ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 */
}
9
Ví dụ
10
Ví dụ
11
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
12
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.
13
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
14
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)
15
Câu lệnh if
Lưu đồ
Điềukiệ
n
Lệnh1
đúng
sai
Câu lệnh if dạng 1
16
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.
17
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
18
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)
19
Câu lệnh if
Lưu đồ:
Điềukiện
Lệnh1
đúng
sai
Câu lệnh if dạng 2
Lệnh2
20
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.
21
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
22
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;]
}
23
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
24
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
25
Câu lệnh switch
Ví dụ 1: Chuyển đổi giữa lệnh switch và lệnh if
26
Câu lệnh switch
Ví dụ 2: Các nhóm lệnh có thể rỗng
27
Bài tập
1, Cho 2 số thực a, b bất kỳ. Tìm thương của hai số nếu
b khác 0, trong trường hợp b=0 kết luận không tồn
tại thương
2, Cho ba hệ số a, b, c giải và biện luận phương trình
bậc hai ax2 + bx + c =0
3, Nhập vào một tháng bất kỳ, cho biết số ngày trong
tháng đó
Các file đính kèm theo tài liệu này:
- bai_giang_tin_dai_cuong_buoi_5_doc_ghi_du_lieu_voi_tep_tin_c.pdf