我正在使用文件系统库,并且正在尝试创建一个 readline 函数。
int al_fgetc(ALLEGRO_FILE *f)
在 5.0.0 中引入
读取并返回给定文件中的下一个字节。在文件结尾或发生错误时返回 EOF。
那是我从库中使用的功能。我想要做的是 += 将结果字符转换为 std 字符串,如果它是 != EOF 是-1。我只是不确定是否需要强制转换以获得正确的结果。这样的事情会做到吗:
bool File::readLine( std::string& buff )
{
if(eof() || !isOpen())
{
return false;
}
buff = "";
int c = 0;
while(c = al_fgetc(m_file) != EOF && c != '\n')
{
buff += (char)c;
}
return buff.length() > 0;
}
我将从文件中读取 utf-8,所以我需要确保它正常工作。
谢谢