在Visual Studio C ++中读取程序参数的问题

时间:2010-07-28 11:32:26

标签: c++ visual-studio

我在VS2005中运行C ++程序,并且我在项目属性中只设置了一个参数 - >调试 - >命令行参数,例如它名为profile1.dll

这是一段代码片段

cout<<"number of arguments:" << argc<<endl;

for (int i=0; i<argc; i++)
       cout << "argument " << i << ": " << argv[i] << endl;

在输出中我得到了

number of arguments:2
argument 0: c
argument 1: p

不知道为什么它不打印参数的名称?

4 个答案:

答案 0 :(得分:5)

你的exe名称是否以C开头?如果你期望一个字符串并且你只得到一个字符,那通常是因为你发现UTF-16 Unicode中的西方字母有效地在交替的ANSI字符之间放置了0。你在编译Unicode吗?

答案 1 :(得分:3)

argv[0]是您的计划的名称。 argv[1]是第一个参数。听起来您已将main()中的相关参数声明为char* argv而不是char *argv[]char **argv

答案 2 :(得分:1)

离开TCHAR,没关系。

如果使用unicode编译,请使用wcout输出:

int _tmain(int argc, _TCHAR* argv[])
{

  for (int i=0; i<argc; i++)
    wcout << "argument " << i << ": " << argv[i] << endl;

    return 0;
}

否则在没有unicode的情况下编译,你的代码将按原样运行(并且不适用于unicode参数:o)

您可以在“项目属性/常规/字符集”中找到设置

答案 3 :(得分:0)

您可以放置​​main功能的原型吗?你在做什么显然很好。

确保您的主要功能原型类似于:

int main(int argc, char **argv)

希望它有所帮助。