【发布时间】:2013-01-02 20:26:31
【问题描述】:
argv[1] 似乎返回的字符比输入的多 1 个字符。 argv[2] 是正确的。
#include <stdio.h>
int main(int argc, wchar_t *argv[])
{
printf("%d %d\n",wcslen(argv[1]),wcslen(argv[2]) );
return 0;
}
我正在使用 mingw32 进行编译。我用 gcc myprog.c 编译。
为什么会这样?
【问题讨论】:
-
我很确定 main only 获取 ASCII(非宽)字符 .. 或者,至少这是我见过的唯一方式。
-
所以指定 wchar_t 作为参数类型没用?
-
也许有编译器开关可以使用?
-
好吧,首先,找到一个确实使用宽字符 argv 的资源(教程、程序、参考)——它有什么作用/需要什么? (看起来它取决于编译器,也请参阅
wmain:不确定它是在哪里定义的,但它确实出现在 MSVC++ 文档中。) -
wWinmain, Unicode, and Mingw 的可能重复项
标签: c++ c gcc mingw32 widechar