继承自fstream

时间:2013-11-01 03:06:47

标签: c++ inheritance fstream

我正在编写一个类来提供各种IO操作,这些操作将用于读取和写入文件。我目前正在尝试从fstream继承,而不是创建我自己的文件打开,关闭等功能。目前我的示例代码没有添加任何功能,我只需打开写入并关闭它。但是,测试代码在排除时无法成功打开文件。我将添加我可以从fstream正确继承的其他代码。我使用g ++没有使用此代码编译警告或错误,并且它运行时没有崩溃但是我得到“无法打开文件”消息,证明打开不成功。

int main(int argc, char* argv[])
{
    FileParser myFileParser;

    myFileParser.open("c:\test.txt"); 
  if (myFileParser.is_open())
  {
    myFileParser << "This is a line.\n";
    myFileParser << "This is another line.\n";
    myFileParser.close();
  }
  else
  {
    cout << "Unable to open file\r\n";
  }

  myFileParser.close();

    return 0;
}

#pragma once
#include <fstream>
using namespace std;

class FileParser: public fstream 
{
    public:
        FileParser(void);
        virtual ~FileParser(void);

    private:
};

#include "FileParser.h"

FileParser::FileParser(void)
{
}

FileParser::~FileParser(void)
{
}

对此问题的任何帮助都将不胜感激。


此问题现已得到解决,感谢您的支持。

此致

1 个答案:

答案 0 :(得分:1)

解决您眼前的问题:

  1. 你忘了逃避反斜杠:

    myFileParser.open("c:\\test.txt");

  2. 从文件路径开始,我猜你是在Windows上,你可能会得到一个“权限被拒绝”,因为你没有权限在那个位置打开一个文件(对于Vista及以上版本都是如此)。 / p>