我想从终端
为程序分配文件路径在我的程序中,代码如下:
#include<iostream>
int main{
fstream file;
file.open("path",ios::in);
...
我想用
./myprogram /filepath
在终端让我的程序收到路径, 我怎么能实现它?
答案 0 :(得分:2)
您的主要功能声明应如下所示:
int main ( int argc, char *argv[] )
整数 argc 是参数计数。它是从命令行传递到程序中的参数数,包括程序的名称。
字符指针数组是所有参数的列表。
我建议使用Boost.Program_options
来解析参数。
答案 1 :(得分:2)
您可以使用命令行参数。但你的主要应该如下所示。
其中argc
显示参数计数(包括可执行文件本身),argv
显示参数(包括可执行文件本身的名称)。默认情况下为argc = 1
,argv = {"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]
,以避免出现细分错误。