我正在尝试制作一个最大棋盘宽度为 80 个单元格和最大棋盘高度为 52 个单元格的棋盘游戏,但是用户应该能够通过在命令行中输入尺寸来选择尺寸,因此尺寸可能小于最大值。我是编程新手,但我知道命令行参数是通过 C 中的 main 函数传递的,我一直坚持这一点,似乎找不到任何答案。
谁能帮忙谢谢。
我正在尝试制作一个最大棋盘宽度为 80 个单元格和最大棋盘高度为 52 个单元格的棋盘游戏,但是用户应该能够通过在命令行中输入尺寸来选择尺寸,因此尺寸可能小于最大值。我是编程新手,但我知道命令行参数是通过 C 中的 main 函数传递的,我一直坚持这一点,似乎找不到任何答案。
谁能帮忙谢谢。
该main
函数有两个参数,通常称为整数argc
和通常称为字符串指针的数组argv
。main
所以通常声明为:
int main(int argc, char *argv[])
argc
变量是传递给程序的参数数量。
该argv
变量包含传递给您的程序的实际参数。
该argc
变量至少等于1
,因为实际程序名称始终作为参数传递,并且位于argv[0]
.
如果你想要两个参数,那么你首先必须确保它argc
至少等于3
。然后将程序的第一个参数存储为 in 字符串argv[1]
,第二个参数存储在 in 中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
数组的大小实际上比大多数人预期的要大一个。数组的大小argv
实际上是argc + 1
,因此可以从argv[0]
(程序名称)索引到argv[argc]
. 最后一个条目 ( argv[argc]
) 始终是一个NULL
指针。