如何将命令行参数传递给我的main函数?

时间:2013-11-27 06:45:01

标签: c compilation command-line-arguments main

所以我的主要功能如下:

int main(int numberOfArguments, char* argumentArray[]) {
        if (assemble(numberOfArguments, argumentArray)) {
                return 0;
        } else {
                return -1;
        }
}

我希望能够向命令行提供争论

./program inputFile.txt outputFile.txt // PROBLEM IS that this is being interpreted as 3 command line arguments somehow when it is only 2.

其中inputFile.txt是argumentArray [0]而outputFile.txt是argumentArray [1]

2 个答案:

答案 0 :(得分:0)

您在命令行中键入的每个单词(以可执行文件名开头)都会在begin处传递给main函数。 related question

第一个参数argumentArray [0]在保留的实际问题中是可读的。 之后,您将每个单词(由命令行中的空格分隔)作为argumentArray中的元素。

argumentArray的大小由numberOfArguments给出。

因此,如果您坚持在[0]上输入文件,那么您应该使用一些指针算术,如argumentArray ++;否则你自动获得[1]和[2]的给定数据。

答案 1 :(得分:0)

text命令行生成的参数是特定于平台的,但argv数组的第一个元素几乎总是用于查找程序的名称。

如果要放弃第一个参数,只需添加到main的开头:

-- numberOfArguments;
++ argumentArray;