Я пытаюсь сделать обертку для файла - так что небольшая обертка для fstream. Я в процессе создания чего-то, что захочет читать/писать двоичные и текстовые файлы, поэтому я могу заставить загрузчиков моделей говорить одинаково.C++ fstream error unknown
У меня есть один вопрос: почему мой файл не открывается, когда я звоню с этим в ObjLoader.cpp?
Scatterbrain::Log *_file = new Scatterbrain::Log(path, false, true);
if(! _file->Works())
std::cout << "Error!!";
Имея это в scatterbrain.h? Я уверен, что я включил нужные заголовки, поскольку все компилируется отлично, поэтому я считаю, что это должна быть семантическая проблема с тем, как я написал открытый вызов файла? - это получение называется ..
namespace Scatterbrain
{
class Log
{
private:
std::string name;
bool rOnly;
bool isBinary;
int numBytes;
std::fstream file;
protected:
virtual int SizeBytes() { numBytes = (file) ? (int) file->tellg() : 0; return numBytes; }
public:
Log(){}
Log(std::string filename, bool append, bool readOnly)
{
if(FileExists(filename))
{
name = filename;
rOnly = readOnly;
file.open(name.c_str(), ((readOnly) ? int(std::ios::out) : int(std::ios::in |std::ios::out)) | ((append) ? int(std::ios::app) : int(std::ios::trunc)));
}
}
virtual bool Works() { return (file.is_open() && file.good()); }
Благодарности
Ваш файл пуст? –
код для открытия файла вызывается только тогда, когда 'FileExists() == true;' вы это знаете? если файл не существует, ваш код не открывает какой-либо файл. Вы отлаживали это ??? –
и что это такое: 'file = new std :: fstream;'? –