命令行输入c ++

时间:2013-11-26 18:27:14

标签: c++ command-line-arguments argv

我知道我写的时候:

int main (int argc, char *argv[])
{

  return 0;
}

我可以获取命令行输入,例如文件来读取它的输入。但是,在编译后给出输入文件时我该怎么办。我的意思是假设输入文件inputFile.txt的名称和我的代码存储在main.cpp中。我会跟进。

g++ main.cpp -o main
./main inputFile.txt

为了能够获得inputFile.txt,我该怎么办?

3 个答案:

答案 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";  
}