Ошибка при использование команды fin.open() и getline

143
02 июня 2019, 12:00

Пытаюсь открыть файл, который находится на диске С, но выдает ошибки

#include <iostream>
#include <string>
#include <fstream>

using namespace std;
int main()
{
ifstream fin("C:\\Test.txt");
if(fin.good()){
    fin.open ("C:\\Test.txt", ios::out | ios::app | ios::binary);
}else{
cout<<"No"<<endl;
}

if(!fin.is_open()){
    cout<<"First try"<<endl;
}else{
  cout<< "Opened!"<< endl;
  string str="abs";
  while(!fin.eof()){
    str=" ";
    getline(str)
    cout<<str<<endl;
  }
}
fin.clear();
return 0;
}

Я изменил строчку где fin.open(...), но раньше было так и IDE ругалось

string path= "Test.txt";
ifstream fin;
if(fin.good()){
    fin.open (path);-->no matching function for call to 'std::basic_ifstream<char> :: open(std::string&)'
}else{
cout<<"No"<<endl;
}

А вот какую ошибку выдает с строчкой где getline

  string str="abs";
      while(!fin.eof()){
        str=" ";
        getline(str);-->no mathcing function for call to 'getline(std::string&)'
        cout<<str<<endl;
      }

Как исправить ошибки?

Answer 1

Так у вас ошибки при компиляции, а не при открытии файла :)

Просто смотрите описание функций, и все получится...

fin.open(path.c_str()); 

потому что ему нужна C-строка

getline(str); 

тут вы вообще просто забыли указать, откуда читать. Ну откуда компилятору это знать? Укажите

getline(fin,str);
READ ALSO
jar с внешними банками в exe

jar с внешними банками в exe

У меня есть два jar файла, один лежит в lib, соответственно все работаетЕсть ли способ засунуть все это добро в один exe файл ?!

160
JSoup проблема с запятой

JSoup проблема с запятой

Необходимо сгенерировать url типа /address?id=1&param=VAL1,VAL2 Пытаюсь отправить param:

158
Шифрование ГОСТ 28147-89. Не шифруется строка

Шифрование ГОСТ 28147-89. Не шифруется строка

Пытаюсь зашифровать методом ГОСТ 28147-89, но в логе выводится следующее:

131
Как установить JAXB в Intellij IDEA

Как установить JAXB в Intellij IDEA

Заменил JDK в текущем javafx проекте (НЕ мавен) с 8 на 9, тк

126