reusing std::fstream
reusing std::fstream
使用read
方法读取结束std::fstream
后,我无法seekg
到开头(tellg
返回-1)。有没有办法在不关闭和重新打开的情况下重用std::fstream
?
if (!stream->is_open();)
{
throw "stream is closed";
}
stream->seekg(0, stream->end);
std::fstream::pos_type lenght = stream->tellg();
stream->seekg(0, stream->beg);
if (0 != stream->tellg())
{
throw "could not set seek to beginig";
}
char* buffer = new char[lenght];
stream->read(buffer, lenght);
*data = buffer;
return lenght;
第一次运行返回正常。第二次投掷(无法寻找)。
一旦流进入故障模式(即设置了std::ios_base::failbit
),它将不会执行任何有用的操作,直到此标志被clear()
ed。可能就足够了
stream->clear();
相关文章:
- 使 std::fstream 写入文件末尾,但从头开始读取
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 自定义 std::fstream,std::filebuf 的溢出和下溢函数未为每个字符调用
- Windows std::fstream 修改文件后打开()?
- std::fstream 在 MSVC 和 G++ 上使用 UTF-8 的不同行为
- std::getline with std::fstream
- 变量 std::fstream 文件具有初始值设定项,但类型不完整 编译错误
- std::fstream 已使用,但编译器抛出错误
- std::fstream 需要很长时间才能将大数据写入.csv文件中
- STD :: FSTREAM在使用预先分配的内存时在Main之后崩溃
- STD :: FSTREAM文件处理重复使用的问题
- 即使在包含 std 命名空间之后,fstream 在 Visual Studio 2017 中也无法正常工作
- 使用“QUrl”作为文件路径馈送到“std::fstream”
- 为什么与cstdio和std::fstream相比,SDL_RWops在写入文件时表现如此糟糕
- 检查是否使用std :: fstream编写文件
- 为什么 std::fstream 返回 void 而不是 bool
- 为什么'ifstream'和'ofstream'被添加到"std",而'fstream'可以同时达到这两个目的?
- 正在从std::fstream检索文件描述符
- 将对象序列化为加密的 std::fstream (C++)
- 当"std::fstream"无法打开时会引发异常吗?