我有一个处理Ascii和二进制PGM图像的程序。我使用:
打开文件打开模式ifstream istr(argv[i]);
读入PGM文件的标题后,确定我是在处理二进制数据还是ASCII。有没有办法将istr更改为二进制模式?
答案 0 :(得分:1)
没有member function in std::ifstream
来更改模式。因此,您必须close()
并以二进制模式重新open()
文件。
答案 1 :(得分:0)
不,至少不便携。您将不得不以二进制模式打开并手动处理行结束。
答案 2 :(得分:0)
1> 您首先要通过调用Clear
方法来重置流的模式来清除流(如果您的流已经遇到end-of-file
或遇到过,则需要error
)
2> 您必须通过调用close
方法关闭流
3> 最后,您必须调用open
方法以使用所需的文件模式打开新文件