我知道我写的时候:
int main (int argc, char *argv[])
{
return 0;
}
我可以获取命令行输入,例如文件来读取它的输入。但是,在编译后给出输入文件时我该怎么办。我的意思是假设输入文件inputFile.txt的名称和我的代码存储在main.cpp中。我会跟进。
g++ main.cpp -o main
./main inputFile.txt
为了能够获得inputFile.txt,我该怎么办?
答案 0 :(得分:4)
argc
存储参数的数量。 argv
是一个参数数组。
argv[0]
将是程序名称(如果有)。请参阅:Is "argv[0] = name-of-executable" an accepted standard or just a common convention?
如果您只传递一个参数,则可以使用argv[1]
(您的输入文件名)来执行您需要的任何操作。
有关详细信息,请参阅What does int argc, char *argv[] mean?。
答案 1 :(得分:0)
你有两个选择。
在您输入的情况下,字符串“inputFile.txt”将位于argv [1]中(arv [0]是您的实际命令)。然后,您可以使用操作系统从该文件中读取。
更简单的方法是使用重定向;即将命令行更改为“./main< inputFile.txt”然后,该文件的内容将位于输入流中。
第一种方法(或编写您的程序以支持两者)将优先用于商业应用程序,但第二种方法将用于学习目的。
答案 2 :(得分:0)
:
foreach(argv) {
if(argv exists)
open filehandle;
do stuff
} else {
printf "Your file does not seem to exist";
}