在C 中打开二进制文件,更改打开文件的模式

Opening Binary files in C++, changing the mode of an open file

本文关键字:文件 模式 二进制文件      更新时间:2023-10-16

我有一个程序可以处理ASCII和二进制PGM图像。我使用以下方式打开文件模式:

ifstream istr(argv[i]);

在PGM文件的标题中阅读后,确定我是处理二进制数据还是ASCII。那么是否可以将ISTR更改为二进制模式?

std::ifstream中没有成员函数可以更改模式。因此,您必须在二进制模式下进行 close()并重新 open()文件。

1> 您首先要通过调用Clear方法来清除流以重置流的模式(如果您的流已经达到end-of-file,则需要error

2> 您必须通过调用close方法

关闭流

3> 最后,您必须调用open方法以使用所需的FileMode

打开新文件

否,至少不是正常的。您将必须以二进制模式打开并手动处理线路结尾。