我是c ++的新手,在项目中我需要使用命令行参数。 我读到了命令行参数,包括
int main(int argc, char** argv)
{
}
但是我在源文件中声明我的文件名时遇到了问题。
我在源文件(file_process.cpp)中将我的输入和输出文件名声明为
const char iFilename[] ;
const char oFilename[] ;
定义了函数(使用输入文件--iFilename并处理oFilename中的输出)
void file_process::process(iFilename[], oFilename[])
{
body...
}
并在主方法中:
int main(int argc, char** argv) {
iFilename[] = argv[1];
oFilename[] = argv[2];
file_process::process(iFilename[], oFilename[]);
}
之前我硬编码文件名以在main方法中没有参数的情况下测试我的程序,并将源文件(file_process.cpp)中的变量声明为:
const char iFilename[] = "input_file.pdf";
const char oFilename[] = "output_file.txt";
并且它正常工作,但是当我尝试从命令行获取参数时,如上所述,我无法编译它。
在c ++中这样做是否正确?我使用c#,只是在源文件中声明如下:
string iFilename = args[0];
string oFilename = args[1];
的工作原理。 我
答案 0 :(得分:1)
这是一种方法:
int main(int argc, char** argv)
{
assert(argc >= 3);
const std::string iFilename = argv[1];
const std::string oFilename = argv[2];
file_process::process(iFilename, oFilename);
}
你file_process::process
可能是:
void file_process::process(const std::string& iFilename, const std::string& oFilename)
{
body...
}