用C ++打开二进制文件,改变打开文件的模式

时间:2012-10-28 05:10:47

标签: c++ io

我有一个处理Ascii和二进制PGM图像的程序。我使用:

打开文件打开模式
ifstream istr(argv[i]);

读入PGM文件的标题后,确定我是在处理二进制数据还是ASCII。有没有办法将istr更改为二进制模式?

3 个答案:

答案 0 :(得分:1)

没有member function in std::ifstream来更改模式。因此,您必须close()并以二进制模式重新open()文件。

答案 1 :(得分:0)

不,至少不便携。您将不得不以二进制模式打开并手动处理行结束。

答案 2 :(得分:0)

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

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

3> 最后,您必须调用open方法以使用所需的文件模式打开新文件