You are on page 1of 2

#include <iostream>

#include <fstream>
using namespace std;
// Khởi tạo class Sinh viên, vì yêu cầu đề bài là Hướng đối tượng
class SinhVien {
// Định nghĩa thuộc tính ma_sv và ten_sv
// Vì là thuộc tính nên phải để "private", đại khái là để bảo vệ dữ liệu bla bla
private:
string ma_sv;
string ten_sv;
// Định nghĩa phương thức docvainttsv (Đọc và in thông tin sinh viên) :))
// Vì phương thức này được gọi từ hàm main() nên phải để "public"
public:
void docvainttsv(){
// Gán luồng file stream vào biến "input"
ifstream input("sv.txt");
// Khởi tạo biến "line", biến này có nhiệm vụ lặp lần lượt từng dòng để lấy thông tin trong
file "sv.txt"
string line;
// Lặp cho đến khi kết thúc file (eof)
while(!input.eof()){
// Lấy thông tin của dòng trong file và gán vào biến "line"
// VD: gán "B16DCAT100#Tran Duc Bo" vào biến "line"
getline(input, line);
// Gán 10 ký tự đầu của biến "line" vào thuộc tính "ma_sv"
// VD: "B16DCAT100"
this->ma_sv = line.substr(0,10);
// Gán các ký tự còn lại của biến line vào thuộc tính "ten_sv", do
bỏ dấu "#" nên ký tự bắt đầu từ vị trí 11
// VD: "Tran Duc Bo"
this->ten_sv = line.substr(11, line.length() - 11);
// Do 2 thuộc tính "ma_sv" và "ten_sv" là kiểu con trỏ (string) nên
khi gọi đến nó phải sử dụng ký tự "->" thay vì dấu "."
// Đọc hiểu lại về biến "this" nhé
// Hiển thị "ma_sv" và "ten_sv", ngăn cách bởi dẩu " - " và kết thúc
bằng "endl" (xuống dòng)
cout << this->ma_sv << " - " << this->ten_sv << endl;
}
}
};

int main() {

// Khởi tạo biến "sv" và đối tượng "SinhVien"


SinhVien sv;

// Gọi đến hàm "docvainttsv"


sv.docvainttsv();
return 0;
}

You might also like