C++ Fstream在std::Fstream::in | std::Fstream::out | std::Fstream::app模式下打开文件
我需要能够创建一个不存在的文件。设计如下: 对于所有文件IO,我有一个线程,在封装文件的数据结构中,我有一个std::fstream file_句柄 我可以在模式-C++ Fstream在std::Fstream::in | std::Fstream::out | std::Fstream::app模式下打开文件,c++,file-io,C++,File Io,我需要能够创建一个不存在的文件。设计如下: 对于所有文件IO,我有一个线程,在封装文件的数据结构中,我有一个std::fstream file_句柄 我可以在模式-std::fstream::in | std::fstream::out | std::fstream::app下创建并打开此文件吗? 我需要这个,因为我必须使用这个句柄来执行文件末尾的读取和写入 但是,这不是创建文件。以下是我所拥有的: class file_io { std::string filename; std:
std::fstream::in | std::fstream::out | std::fstream::app
下创建并打开此文件吗?
我需要这个,因为我必须使用这个句柄来执行文件末尾的读取和写入
但是,这不是创建文件。以下是我所拥有的:
class file_io
{
std::string filename;
std::fstream file_handle;
file_io(std::string name)
{
filename = name;
}
void open_file()
{
if(!file_handle.is_open())
{
file_handle.open(filename.c_str(), std::fstream::in | std::fstream::out | std::fstream::app);
if(!file_handle.is_open())
{
std::cout << "Could not open file " << filename ;
}
else
{
std::cout << "successfully opened file " << filename;
}
}
}
~file_io()
{
if(file_handle.is_open)
file_handle.close();
}
};
类文件
{
std::字符串文件名;
std::fstream文件\u句柄;
文件io(标准::字符串名称)
{
filename=名称;
}
void open_文件()
{
如果(!file\u handle.is\u open())
{
file_handle.open(filename.c_str(),std::fstream::in | std::fstream::out | std::fstream::app);
如果(!file\u handle.is\u open())
{
std::cout因此,在std::stream open方法上读取文档。如果在打开中同时指定了'in'和'app',则打开将失败。请尝试将'in'关闭,看看会发生什么 如果模式同时设置了trunc和app,则打开操作将失败。如果设置了其中一个但未设置out,或者设置了app和in,则打开操作也将失败
< /P> < P>按C++ 98文档(假设您使用C++ 98),不能在和
至于在一个文件上有多个句柄,这应该会有帮助:。FWIW:我想指出,在一个类中,您没有指定public:或private:,所有内容都将默认为private。您甚至不应该编译调用open函数的代码。