- - PR -
main関数の引数
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-15 02:20
初めまして。
VisualC++Express2005を使用していて解らないことがあり、教えてください。 プロジェクトからコンソールアプリケーションを作成し、以下のようにしてmain関数の引数を取得して表示しようとすると、引数の1文字目しか取得されません。 int _tmain(int argc, _TCHAR* argv[]) { printf("%s\n", argv[1]); return 0; } 上記のコードにコマンドから引数 aaa を与えても、表示されるのは、a 1つのみです。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2007-06-15 03:25
VS2005 で扱う _TCHAR は default で Unicode です。
printf 関数の型フィールド文字 _________________ ちゃっぴ@わんくま同盟 ちゃっぴの監禁部屋 [ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2007-06-15 03:27 ] | ||||||||
|
投稿日時: 2007-06-15 08:38
ちゃっぴさん ご回答ありがとうございます。
教えて頂いた通りに変更し、うまくいきました。 ありがとうございました。 | ||||||||
|
投稿日時: 2007-06-15 08:45
_TCHARを使う場合、コンパイルオプションの文字セット
(「構成プロパティ」−「全般」−「文字セット」のところ) を変えてもビルドできるようにすべきですので、 >printf_s("%S\n", argv[1]); とすると、Unicode文字セットを使う場合のみしか正常に動かないことになるので、 printf(printf_s)ではなくTCHARルーチンの関数+_Tマクロ(TEXTマクロ)を使うべきでしょう。 よって、
といったようなコードにすべきでしょう。 また、Unicode文字セットでビルドする場合日本語文字が表示されない場合も あるので、setlocaleの記述を必要に応じて加えます。 参考) MSDN Tchar.h における汎用テキストのマッピング Unicode対応プログラミング
については Editコントロールについてのスレッドを参考にしてみてください。 | ||||||||
|
投稿日時: 2007-06-15 22:53
Blue様 ご教授ありがとうございます。
とても参考になりました。 教えて頂いたページを参照して勉強します。 ありがとうございました。 | ||||||||
|
投稿日時: 2007-06-15 23:52
すいません。私が勉強させていただきました。
_________________ |
1