尝试使用命令行参数

问题描述 投票:0回答:1

尝试运行此命令行参数时出现错误。我不确定我是否在正确执行命令,但是我试图输入两个文件名,然后使用这些文件名供以后使用。这是代码

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

    fstream file;
    //defining filename
    ifstream infile(argv[0], ios::in);
    ofstream outfile(argv[1], ios::out | ios::app);
}
c++ file io command-line-arguments
1个回答
0
投票

如果使用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);
}
© www.soinside.com 2019 - 2024. All rights reserved.