我正在尝试使用std :: fstream for io来存档,我想创建该文件(如果它尚不存在).
std::fstream my_stream
my_stream.open("my_file_name",std::fstream::binary | std::fstream::in | std::fstream::out);
if(!my_stream)
std::cout<<"error"<<strerror(errorno);
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:"没有这样的文件或目录."
在这种情况下如何创建文件?
Fré*_*idi 43
您std::fstream::in在调用fstream :: open()时指定.众所周知,这会强制它需要现有文件.
std::fstream::in从您的mode参数中删除,或者指定std::fstream::trunc除其他标志之外的其他标志.
inc*_*ick 12
它有点乱,但有效.如果文件存在,则不会覆盖该文件,但如果第一次打开失败,则会创建一个新文件.
std::fstream my_stream
my_stream.open("my_file_name",std::fstream::binary | std::fstream::in | std::fstream::out);
if(!my_stream)
{
my_stream.open("my_file_name",std::fstream::binary | std::fstream::trunc | std::fstream::out);
my_stream.close();
// re-open with original flags
my_stream.open("my_file_name",std::fstream::binary | std::fstream::in | std::fstream::out);
}
else
{
// read something
}
// read/write here
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18987 次 |
| 最近记录: |