2016-01-13 145 views
-2

c中的命令行參數和scanf函數有什麼區別? 1)命令行參數是什麼意思? 2)如果我可以通過scanf從用戶那裏獲得輸入,那麼commad行參數需要什麼。 3)scanf和命令行參數之間的主要區別是什麼c中的命令行參數和scanf函數有什麼區別?

+1

命令行參數與'scanf'函數的區別與蔬菜烤寬麪條和裸奇點之間的區別相同。他們沒有任何關係:-) – paxdiablo

回答

0

它們是獲取信息到程序中的兩種不同方式。

當您使用命令行參數運行程序時,它們作爲參數提供給main函數。由於它們是C字符串,因此可以像這樣讀取它們。用命令行參數運行它基本上是一樣的東西:

store picture_of_zx80.jpg myPornDirectory 

這兩個參數運行store程序。

另一方面,scanf函數從標準輸入中讀取信息,這些信息需要單獨提供給可能提供的任何命令行參數。

+0

你是邪惡的:) – DeveloperChris

0

啓動程序時會添加命令行參數。

e.g. notepad.exe myletter.txt 

scanf在程序啓動後從輸入管道讀取信息。它也可以對輸入數據應用一些格式。

0

命令行參數是您在開始執行時傳遞給程序的參數,然後可以在程序中使用它,例如控制某些行爲。他們可以當你運行它,例如可以規定,如果你有一個名爲test.exe的程序,你可以用

test.exe someArg 

從命令行運行它。

scanf()函數根據您從標準輸入緩衝區stdin指定的內容讀取輸入。在命令行上執行的程序,這是典型的做法才能收到的用戶輸入,例如是這樣的:

int main(void) { 
int input = 0; 
scanf("%d",input); 
printf("You inputted: %d",input); 
return 0; 
} 
2

有三種類型的標準輸入基本上是:

1.Compile時間

2.Load時間

3.Run時間

1.編譯時間:在這種類型中,程序員自己只在編譯時輸入代碼。

2.加載時間:加載時間是指程序加載到RAM中執行時的時間。在輸入./a.out(或任何可執行文件名)時,在命令提示符下的linux終端中,您正在將您的可執行文件加載到RAM中,這是在編譯完成後得到的。因此,在將可執行文件與可執行文件一起加載時,無論通過命令提示符傳遞什麼,都將視爲命令行參數。這可以在運行時在某些代碼中使用。簡而言之,命令行參數是加載時提供的輸入。

3.運行時間:及其而程序正在運行或正在執行,scanf()的是,可用於在運行時提供輸入功能的一個的時間。因此,使用scanf()我們可以在運行時基本上爲我們的程序提供輸入。

+0

因爲程序沒有加載,如果它已經在內存中調用「加載時間」「調用時間」是否更合適? –

+0

坦率地說,我不知道「調用時間」,我不知道java,但根據這個擔心,術語「加載時間」是適當的,因爲我們通過該命令在提示符右側加載可執行文件? – Stubborn

相關問題