C++ 将命令行参数输入文件传递给要分析的类
对于我的问题,可能有一个非常简单的解决方案,但是我在将输入文件(从命令行参数)传递到类中进行解析时遇到了一些问题 以下是我的main.cpp代码的相关部分:C++ 将命令行参数输入文件传递给要分析的类,c++,command-line-arguments,argument-passing,C++,Command Line Arguments,Argument Passing,对于我的问题,可能有一个非常简单的解决方案,但是我在将输入文件(从命令行参数)传递到类中进行解析时遇到了一些问题 以下是我的main.cpp代码的相关部分: #include <iostream> #include <chrono> #include "SortingCompetition.h" int main(int argc, char** argv) { if (argc != 3) { std::cerr << "I
#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;
}
这就是我遇到问题的地方,我没有正确地将输入文件从命令参数传递到私有变量。我已经搜索了很长时间,但找不到解决方案。您正确地传递了它,但存储了对临时的引用。这就是问题所在 更改:
class SortingCompetition{
private:
string input_; // THIS LINE
vector<string> data_;
分类竞赛{
私人:
字符串输入\;//此行
矢量数据;
这复制了值,因此构造函数的参数(或
setFilename
)只是临时的,这无关紧要。“解析”的重要性在哪里?我认为这没有关系。在readData
函数中,我试图解析输入文件:bool SortingCompetition::readData(){string temp;input_>>temp;
Oh-aha。那还有其他问题吗?好的,谢谢。但是我要把它改成什么呢?如果我把const
放在那里,我就不能再解析它了。
#include "SortingCompetition.h"
SortingCompetition::SortingCompetition(const string& inputFileName){
input_ = inputFileName;
}
void SortingCompetition::setFileName(const string& inputFileName){
input_ = inputFileName;
}
class SortingCompetition{
private:
string input_; // THIS LINE
vector<string> data_;