c ++ argv [1]奇怪的东西

时间:2015-06-13 11:40:08

标签: c++ argv

我从argv[]解析C ++参数时遇到了奇怪的问题。以下是一些代码示例:

int main(int argc, char **argv) {
    for (int i=0; i <argc; i++)
        printf("argv[%d] = %s|\n", i, argv[i]);
    return 0;
};

当我像这样运行这个程序时:

./myprogram --aaa-a --bbb-b --ccc-c

我得到的结果是:

argv[0] = myprogram|
argv[1] = --aaa-a --bbb-b|
argv[2] = --ccc-c

但是当我尝试时:

./myprogram --aaa-a  --bbb-b --ccc-c

在aa和bb之间有额外的空间,我得到了:

argv[0] = myprogram|
argv[1] = --aaa-a|
argv[2] =  --bbb-b|
argv[3] = --ccc-c|

有谁能告诉我这里发生了什么?

1 个答案:

答案 0 :(得分:2)

出于某种原因,--aaa-a--bbb-b之间有non-breakable space(或任何显示为空格的字符)。删除整个命令行并从头开始重新编写。