【发布时间】:2017-12-07 07:08:23
【问题描述】:
我的程序必须接受可选的命令行参数,其中有 1 个或 3 个参数(可执行文件、行数、列数)。如果 argc 不是 3,我们必须创建一个 10x10 的板(我已经创建了一个函数来创建板)。
我不确定如何解释这一点。 main.c 的一个限制是我们只被允许声明/分配变量和调用函数,所以我被困在我应该如何做这件事上。我最初的想法是写一个函数correctNumOfArgs来检查argc是否为3,然后返回true或false。然后,我将使用该结果生成一个不同的函数来确定如何创建板,但这仍然需要我将 argv[1] 和 argv[2] 作为函数中的参数传递,它们甚至可能不存在。我该如何解决这个问题?注意:我查看了有关可选命令行参数的其他问题,他们提出的解决方案比我们所学的更先进。有没有更基本的解决方案?
【问题讨论】:
-
显示代码
-
您似乎已经知道如何做到这一点 - 使用
argc检查参数的数量。我们不知道您在实际编写代码时有什么样的“限制”,这是为了学校作业还是什么? -
编写一个函数只是为了检查
argc对我来说似乎有点矫枉过正.. 只需检查main中的argc...if (argc==1){ create_board(10, 10); } else if (argc==3) { create_board(atoi(argv[1]), atoi(argv[2]); }else{ printError} ... return 0; -
虽然也许它回避了问题的精神,但似乎你需要做的就是让
main()调用一个不受相同限制的main_real()函数,通过argc和argv给它。 -
@yano 很抱歉没有更好地措辞。我的问题是我试图在将 argv 作为参数传递之前拆分它,而我应该只是传递整个内容并访问函数中的不同元素,如下面的答案所示。谢谢