またはを使用cout
してプログラムをビルドしたため、出力にアドレスが表示されます。おそらく、Visual Studio プロジェクトの設定によるものです。次に、Microsoft の非標準に展開し、 に展開します。UNICODE
_UNICODE
_tmain
wmain
_TCHAR
wchar_t
そして、ポインターがヌルで終わるワイド文字の文字列をcout
どのように指しているのかわかりません。wchar_t
でなぜそれが起こらないのかわかりませんprintf
。レムチェック。
OK確認しましたが、あなたprintf
が示しているように「param」を印刷していません。
これが私がチェックした修正されたコードです:
#include <iostream>
#include <stdio.h>
#include <tchar.h>
using namespace std;
int _tmain( int argc, _TCHAR* argv[] )
{
for( int i = 0;i < argc; ++i )
{
printf("printf Argument %d:%s\n",i,argv[i]);
}
for( int i = 0; i < argc; ++i )
{
cout << "cout Argument " << i << ": " << argv[i] << endl;
}
}
結果は次のとおりです。
[D:\開発\テスト]
> cl foo.cpp /D _UNICODE
foo.cpp
[D:\開発\テスト]
> foo パラメータ
printf 引数 0:f
printf 引数 1:p
cout 引数 0: 004F9A9C
cout 引数 1: 004F9AA4
[D:\開発\テスト]
> _
言い換えれば、明らかな難問は完全にあなたの不正確な結果報告が原因です。
解決策: Microsoft の非標準wmain
の を使用する代わりに、特に今ではまったく意味のない Windows 9x サポート マクロを使用する代わりに、標準の C++main
を使用してください。