从终端为程序分配文件路径

时间:2015-04-08 12:14:00

标签: c++

我想从终端

为程序分配文件路径

在我的程序中,代码如下:

#include<iostream>

int main{

fstream file;
file.open("path",ios::in);
...

我想用

./myprogram /filepath

在终端让我的程序收到路径, 我怎么能实现它?

2 个答案:

答案 0 :(得分:2)

您的主要功能声明应如下所示:

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

整数 argc 是参数计数。它是从命令行传递到程序中的参数数,包括程序的名称。

字符指针数组是所有参数的列表。

我建议使用Boost.Program_options来解析参数。

答案 1 :(得分:2)

您可以使用命令行参数。但你的主要应该如下所示。 其中argc显示参数计数(包括可执行文件本身),argv显示参数(包括可执行文件本身的名称)。默认情况下为argc = 1argv = {"myProgram"}。 (如果您的输出文件是“myProgram”)

int main (int argc, char* argv[])
{
    fstream file;
    if (argc == 2){
        file.open(argv[1],ios::in);
    }else{
        // handle the error
    }
}

运行程序时:

./myProgram "/filepath"

但是,在没有给出其他参数的情况下,请务必在使用argc之前检查argv[1],以避免出现细分错误。