尝试运行此命令行参数时出现错误。我不确定我是否在正确执行命令,但是我试图输入两个文件名,然后使用这些文件名供以后使用。这是代码
int main(int argc, char *argv[])
{
fstream file;
//defining filename
ifstream infile(argv[0], ios::in);
ofstream outfile(argv[1], ios::out | ios::app);
}
如果使用program file1 file2 --flag1 --flag2
运行程序,则说program
可以是它的抽象路径,它的相对路径或用于调用程序的任何内容。现在argv [0]实际上是program
,而不是file1
。因此,您的程序实际执行的操作是打开itself和第一个文件,而不是打开file1和file2。建议对代码进行更正(在MacOS上使用Xcode和FreeBSD 13.0测试):
#include<fstream>
using namespace std;
int main(int argc, char *argv[])
{
fstream file;
//defining filename
ifstream infile(argv[1], ios::in);
ofstream outfile(argv[2], ios::out | ios::app);
}