您好我想知道什麼樣的價值觀會的argv輸入了什麼東西[1]或argv的[2]是的,如果我沒能爲它提供的命令行參數值時,是不是在命令行
2
A
回答
2
-1
如果你是幸運的話會出現段錯誤,如果不是,則爲垃圾。
使用argv的唯一安全方法是將其視爲argc元素的數組。
for (int ii = 0; ii < argc; ++ii)
{
// safe to use argv[ii];
cout << argv[ii];
}
int ix = somevalue;
if (ix >= 0 && ix < argc)
{
// safe to use argv[ix];
}
給傑瑞的注意事項。段錯誤是在大多數體系結構上取消引用NULL時所得到的結果。
7
你已經得到了很多不正確的答案。在命令行上沒有輸入任何內容,argv[0]
仍然通常會包含程序的名稱,因此argc
將爲1. argv[argc]
將包含空指針(始終在每個符合C或C++的實現上)。在C標準中,該要求位於§5.1.2.1.1/ 2的第二個項目符號中。在C++標準中它是在§3.6.1/ 2。
+0
我糾正了。感謝您的標準參考。 – 2010-02-07 04:38:34
+0
這是一個很好的細節。但其他答案不是'不正確的'。如果你去引用argv [1],你會得到垃圾或段錯誤,值被認爲是null的事實是有點旁邊的。說arg [1]'包含'垃圾,而不是說argv [0]'包含'程序名稱是正確的。 – 2010-02-07 05:57:06
相關問題
- 1. appcfg.py不是在命令行
- 2. PHP7不是在命令行
- 3. 在命令行程序中運行[不是真的]命令
- 4. 行命令不是在gridview的工作
- 5. 命令從命令行運行,而不是從cron運行?
- 6. 命令行工作,在Makefile中同樣的命令不是
- 7. 多行grep命令(不是多行grep)
- 8. 正常運行時在NetBeans而不是在命令提示
- 9. 沒有輸出的java內執行的命令行bash命令是不是像
- 10. 是什麼 - 做運行NPM命令時?
- 11. 運行命令時,$是什麼意思?
- 12. 命令行mvn編譯但不是IntelliJ
- 13. 執行命令而不是打印
- 14. curl命令行工作,php shell_exec()不是
- 15. Git推命令行而不是netbeans
- 16. curl命令行是不開放
- 17. 的Eclipse IDE是不是在命令行打開
- 18. .vimrc中自動命令運行命令,而不是映射
- 19. 命令從Shell腳本工作,但不是從命令行?
- 20. AWS:命令在命令行中工作,但不是PHP的可執行文件
- 21. 在命令行運行mfp時Mac命令找不到錯誤
- 22. 從argparse中的變量而不是命令行獲取值
- 23. 爲什麼不是gcc從命令行傳遞宏值?
- 24. 螞蟻在eclipse中執行,但不是從命令行執行
- 25. Maven項目在命令行中運行,但不是在Eclipse
- 26. 命令工作在Windows命令行,但不是在Git Bash終端
- 27. CFExecute不是ImageMagick的命令
- 28. `buildpacks`不是Heroku的命令
- 29. GIT - '〜/ repo.git /'不是git命令
- 30. 'worktree'不是git命令
這個答案有點不對,因爲'argv [1]'不會包含垃圾,它會包含'NULL'。 – Omnifarious 2010-02-07 04:40:26
@Omnifarious:更正。感謝您指點。 – missingfaktor 2010-02-07 05:29:05
說「'argv [argc]'將會是'NULL'」會更準確。如果argc爲1(如果沒有參數傳遞給'託管環境'中的程序,但幾乎沒有保證,那麼'argv [1]'將會是'NULL'。當然,在這種情況下,'argv [2]'(OP詢問的)將是不確定的。 – 2010-02-07 05:55:27