wchar_t*
パラメータとして をフォーマットして取得しようとしint
ています。私はたくさんグーグルで検索しましたが、もっと混乱してしまいました。したがって、次のコードを検討してください。
int main(int argc, char** argv) {
wchar_t buf[16];
wsprintf(buf, L"%d", 5);
wprintf(L"[%ls]\n", buf);
system("pause");
return 0;
};
wchar_t
、 、 がそれぞれ 、 、と同等のワイド文字であるwsprintf
と仮定すると、上記は を出力すると予想していましたが、 と の間にゴミが出力されます。望ましい結果を達成するための正しい方法は何ですか? そして、私はここで何を誤解していますか?wprintf
char
sprintf
printf
[5]
[
]
(ここでは、移植性がセキュリティよりも重要であることを明確にする必要があるため、より安全なベンダー固有の拡張機能の代わりに、この関数ファミリを使用するソリューションを知りたいです。)