在C 中打开二进制文件,更改打开文件的模式
Opening Binary files in C++, changing the mode of an open file
我有一个程序可以处理ASCII和二进制PGM图像。我使用以下方式打开文件模式:
ifstream istr(argv[i]);
在PGM文件的标题中阅读后,确定我是处理二进制数据还是ASCII。那么是否可以将ISTR更改为二进制模式?
std::ifstream
中没有成员函数可以更改模式。因此,您必须在二进制模式下进行 close()
并重新 open()
文件。
1> 您首先要通过调用Clear
方法来清除流以重置流的模式(如果您的流已经达到end-of-file
,则需要error
)
2> 您必须通过调用close
方法
3> 最后,您必须调用open
方法以使用所需的FileMode
否,至少不是正常的。您将必须以二进制模式打开并手动处理线路结尾。
相关文章:
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- C++二进制模式下写入和读取文件
- C++将特定的数据模式从RFID阅读器写入文本文件
- glob只给出匹配模式的第一个文件
- 在 eclipse 中以发布模式构建后没有可执行文件
- 是否有标准的文件保存和交换模式
- 生成文件匹配规则和配方中的模式
- ios::app 和 ios::noreplace 模式在文件处理中有什么区别?
- C++文件可配置的编译时多态模式?
- QTextStream 无法使用开放模式写入文件,包括"t" QIODevice::Append
- Gettin 目标模式不包含来自未修改的生成文件的"%"?
- 为什么隐藏文件无法在 MFC 中的创建和写入模式下打开?
- 如何仅使用 std::filebuf 将数据(二进制模式)写入文件
- Visual Studio在发布模式下构建,但用户收到消息说他们需要调试文件
- 具有混合依赖项的生成文件模式规则
- 文件模式在turbo c++中不工作
- 生成文件模式规则:循环生成文件.o < - 删除生成文件依赖项
- 生成文件模式规则差异