• 締切済み

できればソースを変えないでEUC-JPで出力したい

g++でコンパイルして、画面上にprintfで出力しているのですが、ソースコードの漢字がUTF-8だけど出力時はEUC-JPにする方法はありますか? printfを別の関数にしてそこでEUC-JPに変換して出力する方法は直ぐに思いつきますが、 できれば、printfのソースを変えずに(ソースのコード自体もUTF-8のまま)EUC-JPに出力する方法がありますか? なければ、別の関数にして書き換える方法をとりますが、単に可変引数でprintfの真似までして 書き直すなら、iostreamなどつかって、iostreamの機能を拡張してEUC-JPを出力する記述方法がわからないので、できる人教えていただけますか。こうすると、後でシフトJISを出力したい時も簡単に直せて、ソースの見た目もダサダサにならないかなと思っています。

みんなの回答

  • colder
  • ベストアンサー率43% (30/69)
回答No.2

最近のg++ならコンパイルオプションで指定できます g++ --input-charset=UTF-8 --exec-charset=EUC-JP ....

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

printfに渡した時点で標準出力に出てってしまうので、プログラム上で変換するならどうしてもその前の必要があります。 最終出力結果の文字コードが変わっていればいいだけなら、パイプでnkfに渡して変換してやればいいんじゃないかなーとか。

関連するQ&A