-5

我正在尝试制作一个最大棋盘宽度为 80 个单元格和最大棋盘高度为 52 个单元格的棋盘游戏,但是用户应该能够通过在命令行中输入尺寸来选择尺寸,因此尺寸可能小于最大值。我是编程新手,但我知道命令行参数是通过 C 中的 main 函数传递的,我一直坚持这一点,似乎找不到任何答案。

谁能帮忙谢谢。

4

1 回答 1

1

main函数有两个参数,通常称为整数argc和通常称为字符串指针的数组argvmain所以通常声明为:

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指针。

于 2013-05-10T12:52:27.463 回答