我正在使用文件系统库,我试图创建一个readline函数。从返回int的函数中获取char的正确方法?
int al_fgetc(ALLEGRO_FILE *f)
介绍了在5.0.0
阅读并指定文件中返回下一个字节。在文件结尾或发生错误时返回EOF。
这是我从库中使用的函数。我想要做的是+ =生成的字符串,如果它是!= 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,所以我需要确保这个工作正常。
感谢
并通过+ =我假设你的意思是追加到字符串的结尾? – yhyrcanus 2012-07-24 19:13:03
是的,我的意思是。 – jmasterx 2012-07-24 19:13:53
请不要在C++中使用C风格转换,而应使用'static_cast(c)'运算符。 –
2012-07-24 19:19:05