我已经看到了很多文本文件输入/输出的示例,我只是想知道您是否可以对其他文件类型(例如mp3,jpg,zip文件等)执行相同的操作?
iostream和fstream会为所有这些工作吗,还是我需要另一个库?我需要新的SDK吗?
所有这些都是二进制数据,所以我认为它就是这么简单。但是我之前一直很不高兴。
我可以将所有文件转换为文本或二进制文件吗?
最佳答案
您可以通过使用openmode binary打开二进制流来处理它们:
ifstream ifs("mydata.mp3", ios_base::binary);
然后,您读写所有二进制内容。但是,如果您需要生成或修改此类内容,播放视频或显示图片,则需要了解所使用格式的内部细节。这可能极其复杂,因此将建议使用库。即使具有库,也需要高级编程技能。
开源库的示例:ffmpeg表示常规的音频/视频格式,portaudio表示音频,CImg表示图像处理(在C ++中),libpng表示png图形格式,lipjpeg表示jpeg。请注意,大多数库都提供C API。
某些操作系统还支持某些本机文件类型(例如,windows bitmaps)。
关于c++ - 如何在C++中输入和输出各种文件类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34256378/