使用此代码重载 >> 以读取文本文件:
std::istream& operator>> (std::istream &in, AlbumCollection &ac)
{
std::ifstream inf("albums.txt");
// If we couldn't open the input file stream for reading
if (!inf)
{
// Print an error and exit
std::cerr << "Uh oh, file could not be opened for reading!" << std::endl;
exit(1);
}
// While there's still stuff left to read
while (inf)
{
std::string strInput;
getline(inf, strInput);
in >> strInput;
}
调用者:
AlbumCollection al = AlbumCollection(albums);
cin >> al;
该文件位于源目录和 .exe 所在的同一目录中,但它总是说它无法处理该文件。抱歉,如果答案真的很明显,这是我第一次尝试在 C++ 中读取文本文件;我真的不明白为什么这不起作用,我能找到的在线帮助似乎并没有表明我做错了什么......