

TCHARはUNICODEが扱えるときいたので早速つかってみた。以下は引数を表示するプログラムである。
Visual C++ Express Editionを使った。
#include <stdio.h>
#include <tchar.h>
int _tmain(int argc, _TCHAR* argv[])
{
int i=0;
while(i<argc){
_tprintf(_T("%s\r\n"),argv[i++]);
}
return 0;
}
しかし上記プログラムに日本語の引数をわたすと文字化けするではないか。なでしょうか?
No.1ベストアンサー
- 回答日時:
Unicodeを使うならTCHARではなくwchar_t系を使うべきだと思いますが……。
# VC++の場合。
> しかし上記プログラムに日本語の引数をわたすと文字化けするではないか。
setlocaleしていないのですから,当然の動作です。
ワイド文字列のストリームへの出力はfputwcを使ったかの如くなされ,fputwcはwcrtombで変換したのと同等の文字列を出力します。
# ISO/IEC 9899:1999 7.19.3 Files / Paragraph.12
そして,wcrtombのはLC_CTYPEカテゴリの現在のロケールに依存します。
# ISO/IEC 9899:1999 7.24.6 Extended multibyte/wide character conversion utilities / Paragraph. 2
どうも。解決しました。
#include <stdio.h>
#include <tchar.h>
#include <locale.h>
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Japanese");
int i=0;
while(i<argc){
_tprintf(_T("%s\r\n"),argv[i++]);
}
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#】SQL文の中に変数を埋め込...
-
2の補数を計算するプログラム
-
intとlongは同じ?
-
再起呼び出しの回数をカウント...
-
waitのつもりがwaitされない!
-
迷路を脱出する経路探索プログ...
-
OpenGLの惑星プログラム
-
argvのNULLチェック
-
再帰処理をループ処理に変換
-
Enterキーを押されたら次の処理...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
C言語での引数の省略方法
-
ある商品のロス率を5%見込み、...
-
【C言語】全角文字の配列を、全...
-
エクセルで可視セルにのみ値貼...
-
fgetsなどのときのstdinのバッ...
-
#define _CRT_SECURE_NO_WARNIN...
-
マイナスからプラスへ転じた時...
-
20'(角度)の計算がわかりま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で%を使わない余りの出し方
-
カードシャッフルのブログラム...
-
2の補数を計算するプログラム
-
OpenCVによる4値化について
-
ヒストグラム均等化処理プログラム
-
【C#】SQL文の中に変数を埋め込...
-
再起呼び出しの回数をカウント...
-
intとlongは同じ?
-
C++で表を作成したいのです ...
-
画像の拡大・縮小
-
argvのNULLチェック
-
c言語プログラミングについて f...
-
ヌメロンのプログラム
-
C言語でDOS画面のプログラム(...
-
OpenGLの惑星プログラム
-
opencvとmbedのシリアル通信で...
-
C言語プログラミング 漸化式に...
-
3のつく数と3の倍数を表示 C言語
-
猫でもわかるゲームプログラミ...
-
条件が多い場合
おすすめ情報