Bài 5 cung cấp cho người học những kiến thức về đọc ghi dữ liệu với tệp tin và cấu trúc lệnh rẽ nhánh. Những nội dung chính được trình bày trong bài giảng này gồm có: Đọc ghi dữ liệu với tệp tin, cấu trúc lệnh rẽ nhánh, câu lệnh if, câu lệnh switch. Mời các bạn tham khảo.
Trang 1Mô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
Trang 2Buổ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
Trang 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
Trang 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
<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
Trang 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
Trang 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
Trang 7Đọc ghi dữ liệu với tệp tin
Trang 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ề
Trang 9Ví dụ
Trang 10Ví dụ
Trang 11Cấ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
Trang 12 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
Trang 13 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
Trang 14Câ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
Trang 16 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
Trang 17Câ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
Trang 20Câ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
Trang 21Câ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
Trang 25Câu lệnh switch
Ví dụ 1: Chuyển đổi giữa lệnh switch và lệnh if
Trang 26Câu lệnh switch
Ví dụ 2: Các nhóm lệnh có thể rỗng
Trang 27Bà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 đó