私はASCIIとバイナリPGM画像の両方を扱うプログラムを持っています。次を使用してファイルオープンモードを開きます。
ifstream istr(argv[i]);
PGMファイルのヘッダーを読み取った後、それは私がバイナリデータを扱っているのかASCIIを扱っているのかを決定します。次に、istrをバイナリモードに変更する方法はありますか?
モードを変更するためのメンバー関数std::ifstream
はありません。したがって、ファイルをバイナリモードでclose()
再作成する必要があります。open()
いいえ、少なくとも移植性はありません。バイナリモードで開き、行末を手動で処理する必要があります。
1>最初にメソッドを呼び出してストリームをクリアし、ストリームClear
のモードをリセットします(ストリームがにヒットした場合、end-of-file
またはに遭遇した場合に必要ですerror
)
2>close
メソッドを呼び出してストリームを閉じる必要があります
3>最後に、open
メソッドを呼び出して、目的のファイルモードで新しいファイルを開く必要があります