我正在编写一个类来提供各种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)
{
}
对此问题的任何帮助都将不胜感激。
此问题现已得到解决,感谢您的支持。
此致
答案 0 :(得分:1)
解决您眼前的问题:
你忘了逃避反斜杠:
myFileParser.open("c:\\test.txt");
从文件路径开始,我猜你是在Windows上,你可能会得到一个“权限被拒绝”,因为你没有权限在那个位置打开一个文件(对于Vista及以上版本都是如此)。 / p>