2015-04-28 6 views
-2

Так что я получаю сообщение об ошибке с g ++, говорящим, что std :: get не является членом fstream. Это дает мне ошибку, особенно когда я использую file.get.std :: get не входит в std :: fstream

Это функция, которая дает мне ошибку.

std::fstream& Obj::load(std::fstream& file){ 

      file.open("123.txt", ios::in); 
      char name[30]; 

      file.std::get(name, 30, ","); //This line gives an error 
      name(name);//sets name 
      file.ignore(); 
      //more code for reading in omitted for sake of simplicity 

      file.close(); 
      return file; 
    } 

ошибка казался немного бессмысленным для меня, потому станд :: получить является членом fstream который является производным от IStream не так ли?

+0

'std :: get' не является членом, если fstream,' get' is. – Quentin

+0

Вы уверены, что 'std :: get' является членом, а не' fstream :: get'? .. – FailedDev

+1

Почему вы вызываете 'file.ignore()' и т. Д. Без 'std ::' и решаете только используйте 'std ::' с 'get'? –

ответ

-1

Заменить

file.std::get(name, 30, ','); 

С

file.get(name, 30, ','); 

Ваш компилятор правильно о том, что std::get не является членом fstream, но istream::get пригодна для fstream, так как он унаследовал!

+0

Как обычно, downvoters, оставьте комментарий, объясняющий, что нужно улучшить. – Mekap