Привет, я только начал изучать C++ на этой неделе, и мне нужна помощь. В основном то, что я пытаюсь сделать, читается из .txt-файла и «конвертирует» его в векторную строку, а затем отображает его. моя ошибка в этой строке: text.readFile («script.txt»), он говорит: «запрос для члена« readFile »в« text », который относится к классу типа« Конверсия() » , что делает это значит? , а также мой метод getLines() не может быть разрешен..txt к вектору <string>, ошибка типа некласса
main.cpp
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <vector>
#include "Conversion.h"
using namespace std;
int main()
{
vector<string> lines;
Conversion text();
if(text.readFile("scenario.txt") == true)
lines = text.getLines();
for(int i = 0; i < lines.size(); ++i)
cout << lines[i] << endl;
return 0;
}
Conversion.cpp
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include "Conversion.h"
using namespace std;
vector<string> lines;
Conversion::Conversion(std::vector<std::string> lines) {
lines.clear();
}
Conversion::Conversion() {
}
Conversion::~Conversion() {
}
bool Conversion::readFile(string filename) {
ifstream file;
string line;
file.open(filename.c_str());
if(!file.is_open())
return false;
while(getline(file, line))
lines.push_back(line);
return true;
}
vector<string> Conversion::getLines(){
return lines;
}
Conversion.h
#ifndef CONVERSION_H_
#define CONVERSION_H_
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
class Conversion {
public:
Conversion();
Conversion(std::vector <std::string>);
~Conversion();
std::vector<std::string> getLines();
bool readFile(std::string);
private:
std::vector<std::string> lines;
std::string line;
std::ifstream file;
};
#endif
C++ - это пропускная способность. 'lines.clear();' ничего не сделает. Если вы хотели использовать глобальный (который действительно не должен быть объявлен глобальным вообще, учитывая, что у вас есть один член), вам придется изменить одно из имен или получить доступ к нему по-другому. Даже тогда, взяв параметр и не используя его, кажется бессмысленным, и член уже понятен, поэтому нет необходимости его снова очищать. – chris
Да, я снял его. Спасибо – KH17