私はLinuxプラットフォームで、Windowsプラットフォームでは必然的に表示されるテキストファイルを生成するプログラムを作成しています。LFの代わりにCR + LFを出すためにstd :: endlを変更する
今のところstd::endl
をostream
に渡すと、改行のみのCR文字が生成されます。当然、これらのテキストファイルはMS Notepadで間違って見えます。
std::endl
には、LFではなく改行にCR + LFを使用するように変更する方法はありますか?- 私自身の改行を生成するために、
win_endl
のような独自のカスタムマニピュレータを書くことができますが、私は多くの場所でstd::endl
シンボルを使用し、多くのプログラマと同様に、可能な作業。 CR + LFを生成するために単にstd::endl
をオーバーロードすることができますか?これはメンテナンス性のための愚かな考えですか?
NB:this questionをチェックアウトしましたが、それ以外の方法について質問しています。回答が不完全であるようです。
もう一つの選択肢は、Unixスタイルの改行(メモ帳以外のほぼすべてのエディタ)を扱う方法を知っているツールを使用するか、行末を変換するツール(一般にunix2dos.exeなど) 。 –
@Michael Burr - 良いアイデアは、私たちの顧客ベースでサポートするのが難しいですが、私の腸の反応です。 –
それは顧客のマシン上で実行する必要はありません - Unixボックスでも同じことをするフィルタがあります。現在のプログラムで生成された出力ファイルをフィルタに通してから、顧客に配布することができます。それはハッキーのようだが、実際にはC++のストリーミオを使うよりもハッキリではないかもしれないと思う。 –