2

オフストリームで改行しようとしていますが、うまくいきません。すべてが OUTPUT.txt の同じ行に書き込まれます

std::ofstream output;
output.open("OUTPUT.TXT");
output << "sometext" << "\r\n" << "sometext" << "\r\n" << "sometext";
output.close();

私も試しました

output << "sometext" << std::endl << "sometext" << std::endl << "sometext";

output << "sometext" << "\n" << "sometext" << "\n" << "sometext";

output << "sometext" << '\n' << "sometext" << '\n' << "sometext";

すべてが同じ行に書かれていて、新しい行はありません... 何か足りないものがありますか?

4

4 に答える 4

2

cygwin の g++ を使用している場合、一部の設定で「\n」を Windows スタイルの CRLF に変換する際に問題が発生しました。スニペットの単純なバージョンを試してみたところ、問題なく動作しました。別のテキスト エディタで開いてみて、問題が解決しないかどうかを確認してください。

于 2011-06-15T02:39:45.927 に答える
0

使用する

output.open("OUTPUT.TXT", ios::out);

ios::binary使用できないことを思い出してください。

于 2014-03-04T22:02:58.317 に答える
0

おそらく。プログラムが書き込んでいるファイルとは異なるファイルのコピーを読んでいます。ファイルを削除してから、プログラムを実行してください。

于 2011-06-15T02:20:33.787 に答える
0

このような場合、テキストをレンダリングする方法について独自のアイデアを持つことができるテキスト エディターではなく、16 進エディターでファイルを見るのが最善だと思います。上。

どのプラットフォームで作業しているかはわかりませんでしたが、Windows を使用している場合はHxDを使用することをお勧めします。

Windows を使用している場合は、次のように表示されます。

Offset(h) 00       04       08       0C       10       14       18       1C

00000000  736F6D65 74657874 0D0A736F 6D657465 78740D0A 736F6D65 74657874 0D0A      sometext..sometext..sometext..

16 進シーケンス0D0A\n、上記の例の Windows の文字です。

于 2011-06-15T02:30:03.250 に答える