所以我的主要函数如下:
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]
从文本命令行生成参数是特定于平台的,但argv
数组的第一个元素几乎总是用于查找程序的名称。
如果您想放弃第一个参数,只需将其添加到main
:的开头即可
-- numberOfArguments;
++ argumentArray;
在命令行中键入的每个单词(以可执行文件名开头)都会在开始时传递给主函数。相关问题
第一个参数argumentArray[0]在保留的实际问题中是可读的。之后,您将每个单词(在命令行中用空格分隔)作为argumentArray中的一个元素。
argumentArray的大小由numberOfArguments给定。
因此,如果你坚持让你的输入文件在[0]上,你应该使用一些指针算法,比如argumentArray++;否则,您将自动获得[1]和[2]中的给定数据。