对于我的问题,可能有一个非常简单的解决方案,但我在将输入文件(来自命令行参数)传递到类中进行解析时遇到了一些问题。
这是我的main.cpp代码的相关部分:
#include <iostream>
#include <chrono>
#include "SortingCompetition.h"
int main(int argc, char** argv)
{
if (argc != 3)
{
std::cerr << "Invalid arguments" << std::endl;
std::cerr << "Usage: ./a.out <input file> <output file>" << std::endl;
return 1;
}
SortingCompetition sorter(argv[1]);
return 0;
}
这是SortingCompetition.h文件:
#ifndef SORTINGCOMPETITION_H_
#define SORTINGCOMPETITION_H_
#include <string>
#include <vector>
using namespace std;
class SortingCompetition{
private:
string& input_;
vector<string> data_;
public:
SortingCompetition(const string& inputFileName);
void setFileName(const string& inputFileName);
bool readData();
bool prepareData();
void sortData();
void outputData(const string& outputFileName);
};
#endif
此处所有功能必须保持不变。即
SortingCompetition(const string& inputFileName);
必须保持这种状态。。。我无法删除
const
或其他任何东西。
以下是分拣比赛的相关实施:
#include "SortingCompetition.h"
SortingCompetition::SortingCompetition(const string& inputFileName){
input_ = inputFileName;
}
void SortingCompetition::setFileName(const string& inputFileName){
input_ = inputFileName;
}
这就是我遇到问题的地方,我没有正确地将输入文件从命令参数传递到私有变量。我已经找了很长一段时间,但找不到解决方案。