2013-11-27 163 views
0

所以我的主要功能如下:如何将命令行参数传递给我的主函数?

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

我希望能够给到命令行的arguement

./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 is argumentArray [1]

+0

什么是你'assemble'?你的代码已经能够通过访问你的numOfArgs和argArray来处理命令行参数。 – starrify

+0

你的程序存储为命令0,其余的继续这样。所以是的解释是正确的 – smac89

回答

0

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

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

-- numberOfArguments; 
++ argumentArray; 
0

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

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

argumentArray的大小由numberOfArguments给出。所以如果你坚持让你的输入文件在[0]上,你应该使用一些像argumentArray ++这样的指针算术;否则您将自动获得[1]和[2]中的给定数据。

相关问题