「一気に最後まで読んだ」本、教えて下さい!

g++でコンパイルして、画面上にprintfで出力しているのですが、ソースコードの漢字がUTF-8だけど出力時はEUC-JPにする方法はありますか?

printfを別の関数にしてそこでEUC-JPに変換して出力する方法は直ぐに思いつきますが、
できれば、printfのソースを変えずに(ソースのコード自体もUTF-8のまま)EUC-JPに出力する方法がありますか?


なければ、別の関数にして書き換える方法をとりますが、単に可変引数でprintfの真似までして
書き直すなら、iostreamなどつかって、iostreamの機能を拡張してEUC-JPを出力する記述方法がわからないので、できる人教えていただけますか。こうすると、後でシフトJISを出力したい時も簡単に直せて、ソースの見た目もダサダサにならないかなと思っています。

A 回答 (2件)

printfに渡した時点で標準出力に出てってしまうので、プログラム上で変換するならどうしてもその前の必要があります。


最終出力結果の文字コードが変わっていればいいだけなら、パイプでnkfに渡して変換してやればいいんじゃないかなーとか。
    • good
    • 0

最近のg++ならコンパイルオプションで指定できます


g++ --input-charset=UTF-8 --exec-charset=EUC-JP ....
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!