我处理输出时使用VTK数据类型。由于我的数据越来越大,将其写成ASCII格式需要相当长的时间,这是我迄今为止一直在做的事情。
我需要将其转换为二进制格式,但问题是即使对于二进制文件,文件中仍有一些标题(请参见http://www.vtk.org/VTK/img/file-formats.pdf)需要用ASCII编写。
现在我没有足够的二进制格式经验,我的第一次尝试是通过打开两个流来实现。
问题是输出似乎杂乱无序,而
我需要将其转换为二进制格式,但问题是即使对于二进制文件,文件中仍有一些标题(请参见http://www.vtk.org/VTK/img/file-formats.pdf)需要用ASCII编写。
现在我没有足够的二进制格式经验,我的第一次尝试是通过打开两个流来实现。
ofstream asciiWriter(file_name.c_str());
ofstream binWriter(file_name.c_str(), ios::app | ios::binary);
问题是输出似乎杂乱无序,而
asciiWriter
和 binWriter
没有按正确顺序输出,因此我无法在 ParaView 中进行后处理。我尝试过的一件事是在头文件/数据写入完成后使用 asciiWriter.flush()
和 binWriter.flush()
,但这也没有帮助。
我该怎么做?
PS:我不想使用 VTK 包本身……它很大,并且会增加我的代码依赖性!
ios::binary
的写入器即可。这样就没问题了。 - Mr Lister