ファイル システム ライブラリを使用していて、readline 関数を作成しようとしています。
int al_fgetc(ALLEGRO_FILE *f)
5.0.0 で導入
指定されたファイルの次のバイトを読み取って返します。ファイルの終わりまたはエラーが発生した場合に EOF を返します。
それは私がライブラリから使用している関数です。私がやりたいのは、+= -1 である != EOF の場合、結果の文字を std 文字列に変換することです。正しい結果を得るためにキャストする必要があるかどうかはわかりません。このようなものはそれを行いますか:
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 を読み取るので、これが正しく機能することを確認する必要があります。
ありがとう