Em đang tạo 1 class để đọc file input trong project. Vấn đề là nếu tạo theo kiểu:
class ReadData{
private: std::fstream StudentDB("studentdb.csv");
};
thì trình dịch báo lỗi ở “studentdb.csv”: expected a type specifier.
Em có tìm hiểu qua stack over flow thì được biết do thằng trình dịch nó hiểu StudentDB lúc đó là 1 hàm với tham số truyền vào là “studentdb.csv”, mà đã là tham số truyền vào hàm thì phải xác định kiểu.
Sau đó em chỉ tạo filestream mà chưa xác định file:
// in “ReadData.h”
class ReadData{
private: std::fstream StudentDB();
};
và dùng phương thức open của fstream trong hàm khởi tạo như sau
// in “ReadData.cpp”
ReadData::ReadData() {
StudentDB().open("studentdb.csv");
}
};
nếu làm theo kiểu này thì lúc link lại bị lỗi:
Error LNK2019 unresolved external symbol "private: class std::basic_fstream<char,struct std::char_traits<char> > __thiscall ReadData::StudentDB(void)" (?StudentDB@ReadData@@AAE?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@XZ) referenced in function "public: __thiscall ReadData::ReadData()" (??0ReadData@@QAE@H@Z) TuyenSinhBK E:\Projects\Visual Studio\TuyenSinhBK\TuyenSinhBK\ReadData.obj
mọi người quen thao tác với file cho em hỏi trường hợp này phải xử lý thế nào ạ.
Tiện thể em góp ý với anh @ltd là lúc đang lập topic, em gõ nhầm vào phím nào đấy thế là trình duyệt thẳng tay back lại, và mất hết những cái đang gõ dỡ, vì vậy anh có thể tránh điều này cho mọi người theo kiểu mà facebook vẫn làm, là nếu đang gõ dở cmt, hoặc bài đăng, nếu có điều hướng sẽ xuất hiện alert để xác nhận việc điều hướng sẽ bỏ qua mấy cái đang gõ.
Em cảm ơn ạ.