簡體   English   中英

如何獲取正確數量的C ++命令行參數?

[英]How to get the correct number of C++ command line arguments?

我從開始我的程序

int main (int argc, char *argv[]) {
    printf("%d \n", argc);

然后我使用g ++在Ubuntu中編譯,然后使用

./calc 2 3 4 + *

但是程序輸出17! 我也對參數進行了printf,它們是:

arg 0: ./calc 
arg 1: 2 
arg 2: 3 
arg 3: 4 
arg 4: + 
arg 5: 1.2.c 
arg 6: 1.3.c 
arg 7: 1.4.c 
arg 8: 2.1.c 
arg 9: 2.2.c 
arg 10: 2.3.c 
arg 11: 2.4.c 
arg 12: 3.2.c 
arg 13: 3.4.c 
arg 14: 4.1.c 
arg 15: a.out 
arg 16: calc 

但這顯然不是我所期望的。 我該如何糾正?

Shell正在評估*表示當前目錄中的所有文件。 您應該使用\\*轉義星號。

linux shell將*解釋為目錄中所有文件的列表。 嘗試用“ \\”轉義,例如

./calc 2 3 4 + \*

要么

./calc 2 3 4 + "*"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM