ошибка C2039: ‘Open’: не является членом ‘std ::basic_fstream

#c #templates #visual-c #compiler-errors

#c #шаблоны #visual-c #ошибки компилятора

Вопрос:

Когда я вызываю

 void fileOpen(const char*
 fname_){file_.Open(fname_,ios::in|ios::out|ios::ate|ios::binary);};
  

Функция, подобная
tempobj->FileOpen(«lastID.dat»);

Это выдает мне ошибку

 Error   23  error C2039: 'Open' : is not a member of 'std::basic_fstream<_Elem,_Traits>'
  

Как мне решить эту проблему. Это класс, в котором у меня есть эта функция. Это шаблонный класс

 #ifndef FileHandlerh_h
#define FileHandlerh_h
#include <iostream>
#include <cstdlib>
#include <fstream>

using namespace std;
template <class T>
class FileHandler
{
    private:
        fstream file_;


    public:
        FileHandler(){};

        FileHandler(const char* fname_){fileOpen(fname_);};

        void fileOpen(const char* fname_){file_.Open(fname_,ios::in|ios::out|ios::ate|ios::binary);};

        void fileWrite(T);
        void fileSeekWrite(T,int);
        T fileRead(int);
        int getNoOfRecords();

        ~FileHandler(){file_.close();};

};
  

Помогите мне с этим …!!

Комментарии:

1. просто прочитайте сообщение об ошибке 'Open' : is not a member of 'std::basic_fstream<_Elem,_Traits>'

Ответ №1:

C чувствителен к регистру. Вам нужно использовать open() вместо Open() .

Комментарии:

1. И ТАК 38 пользователей. Закройте свой вопрос, отметив его ответом.

Ответ №2:

O Возможно, использовать нижний регистр? Довольно редко можно увидеть заглавные буквы в именах функций в стандартной библиотеке.