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