我正在嘗試製作最大棋盤寬度爲80個單元格和最大棋盤高度爲52個單元格的棋盤遊戲,但用戶應該能夠通過將它們輸入到命令行中來選擇尺寸,可能小於最大值。我是編程新手,但我知道命令行參數是通過C中的主函數傳遞的,我剛剛被困住了,並且似乎找不到任何答案。C編程棋盤遊戲
任何人都可以幫助 謝謝。
我正在嘗試製作最大棋盤寬度爲80個單元格和最大棋盤高度爲52個單元格的棋盤遊戲,但用戶應該能夠通過將它們輸入到命令行中來選擇尺寸,可能小於最大值。我是編程新手,但我知道命令行參數是通過C中的主函數傳遞的,我剛剛被困住了,並且似乎找不到任何答案。C編程棋盤遊戲
任何人都可以幫助 謝謝。
main
函數有兩個參數,一個通常稱爲argc
的整數和一個通常被稱爲argv
的字符串指針數組。 main
是這樣常常聲明爲:
int main(int argc, char *argv[])
的argc
變量的傳遞給你的程序參數的個數。
argv
變量包含實際參數傳遞給你的程序。
argc
的變量是至少等於1
,作爲實際程序名稱作爲參數傳遞總是,並且是在argv[0]
。
如果您需要兩個參數,那麼您首先必須確保argc
至少等於3
。程序的第一個參數然後作爲字符串存儲在argv[1]
中,第二個參數存儲在argv[2]
中。
我建議你用一個程序嘗試像這樣:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("argc = %d\n", argc);
for (int i = 0; i < argc; i++)
printf("argv[%d] = \"%s\"\n", i, argv[i]);
return 0;
}
最後(且無關的問題,但有趣的沒有少)是事實的大小數組實際上比大多數人所期望的大一個數組。 argv
陣列的大小實際上是argc + 1
,因此可以從argv[0]
(程序名稱)索引到argv[argc]
。最後一項(argv[argc]
)總是一個NULL
指針。
謝謝你有道理,有隻是一件事,你說參數存儲爲一個字符串,我需要它是一個整數,因爲它應該是董事會的維度。 – Ibz 2013-05-10 13:04:21
@Ibz你應該閱讀函數['strtol'](http://en.cppreference.com/w/c/string/byte/strtol)。 – 2013-05-10 13:08:34
http://stackoverflow.com/questions/12091059/how-to-parse-integer-command-line-arguments-in-c – Elazar 2013-05-10 12:49:41
(@Sudhee,一個是C++) – Elazar 2013-05-10 12:50:41