自定义命令行参数

CRT*_*low 3 c++ customization arguments

我的命令行参数有问题.我完成了程序,所以我可以从命令行启动它:

program.exe test.txt copy_test.txt
Run Code Online (Sandbox Code Playgroud)

基本上,我的程序执行以下操作:

  • 输入一些文本文件
  • 对其进行排序并复制到新的文本文件

但是(总是这样但是?!),我应该从命令行启动程序,如下所示:

program.exe -input=test.txt -output=copy_test.txt
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做.我研究过,但我没有找到任何帮助:(

请回复.

#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

int main ( int argc, char* argv[])
{
 ifstream in(argv[1]);
 ofstream out(argv[2]);
 vector <string> sV;
 string line;
 while (in >> line)
  sV.push_back(line);
 for ( int i = 0; i < sV.size(); i++)
 sort ( sV.begin(), sV.end () );
 for ( int i = 0; i < sV.size(); i++)
 out << sV[i] << endl;
 cin.get();
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

peo*_*oro 7

你应该分析mainargv参数,以检查它们是否开始通过-input,-output等等等等.

从头开始这样做是一个地狱,但幸运的是有很多有用的库可以做到这一点,比如boost.program_options