-1
我得到奇怪的問題,從argv[]
解析C++參數。下面是一些代碼示例:C++ argv [1]奇怪的東西
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之間還有額外的空間a nd bb,我得到了:
argv[0] = myprogram|
argv[1] = --aaa-a|
argv[2] = --bbb-b|
argv[3] = --ccc-c|
有沒有人可以給我一個線索這裏發生了什麼?
你在用什麼外殼? –
@zenith:是的,你說得對。 @ Matt McNabb:標準的Debian破折號。 也我刪除了-O2標誌,現在它按預期工作。 –
不是[重現](http://coliru.stacked-crooked.com/a/852e8bf3919cfd2f)。你將不得不提供更精確的信息(環境,編譯器,編譯參數等)。 –