som*_*ley 3 c c++ file-handling
如何在c/c ++中读取不是简单文本文件的文件内容?例如,我想读取.jpg/.png/.bmp等图像文件并查看某个索引处的值,检查它是什么颜色的?或者如果我有.exe/.rar/.zip并想知道在不同的索引存储什么值?我知道c风格的阅读文件,这是
FILE *fp;
fp = fopen("example.txt","r"); /* open for reading */
char c;
c = getc(fp) ;
Run Code Online (Sandbox Code Playgroud)
我想知道我是否用"image.png"替换"example.txt",它会起作用吗?我会得到正确的数据吗?
当您打开非文本文件时,您将要指定二进制(未翻译)模式:
FILE *fp = fopen("example.png", "rb");
Run Code Online (Sandbox Code Playgroud)
在典型的情况下,您通过定义镜像文件中结构的结构,然后使用fread从文件中读取结构来完成从二进制文件读取的大部分内容(但必须仔细完成,以确保类似于结构中的填充在内存中表示和磁盘上的表示没有区别.