0

バイトを保存する悪い方法:
ファイルに約数バイトを保存しました。バイトは任意のビット (1 または 0)で構成されていました。
ログ項目は約 10 バイトです。ログの最後に「\n」を追加します。
後でファイルから読み取ったとき(ファイルは保存され、両方ともテキスト形式で読み取られました)。ログの 2 バイトが'\n'(0x0d,0x0a) を構成している
ことがわかりました。 しかし、ファイルのストリームの ' readLine() ' を使用してファイルの内容を読み取ると、明らかに正しい行の終わりを認識できませんでした。 私が得たものは大量であることが判明しましたが、バイト(任意の1または0を含む)を保存してファイルから読み取るより良い方法はありますか?


私はqtでc ++を使用しています。可能であれば、IDEでのソリューションの方が優れているはずです。

私の英語は下手です。お読みいただきありがとうございます。

4

2 に答える 2

1

Windows を使用していて、テキスト モードで書き込み、バイナリ モードで読み込んでいると思われます。

Windows では、ファイル システムに保存されるテキスト ファイルの行末に \r\n (0x0d,0x0a) が必要です。テキストモードで書くと、\n がある場合は常に \r が自動的に追加されます。テキスト モードで読むと \r が削除されるため、表示されることはありません。

同じモード (テキストまたはバイナリ) で読み取りと書き込みを行うと、書き込みと同じデータが表示されます。Linux では、テキスト モードとバイナリ モードに違いはありませんが、コードの移植性を維持するには、モードを正しく設定する必要があります。

これがバイナリ ファイルの場合 (文字列ではなくバイトを書き込んでいるように聞こえます)、読み取りと書き込みの両方にバイナリ モードを使用する必要があります。

于 2012-10-11T09:15:28.713 に答える
0

special characterthenの代わりに to を使用してファイルに保存し、行末に を'0'追加できます。'\n'これを試してみてください。

于 2012-10-11T09:15:29.857 に答える