用C ++读取文件

时间:2011-10-23 20:40:11

标签: c++ file-processing

我正在通过c ++进行图像处理,我必须以char格式读取jpeg图像的标题,我必须检查图像的相机/系统/设备信息,我该怎么做。

2 个答案:

答案 0 :(得分:1)

如果文件不是太大,您可以将其全部读入内存:

#include <vector>
#include <fstream>

std::ifstream infile("thefile.bin", std::ios::binary);
infile.seekg(0, std::ios::end);

const std::size_t filesize = infile.tellg();
std::vector<char> buf(filesize);

infile.seekg(0, std::ios::beg);
infile.read(buf.data(), filesize);  // or &buf[0] on old compilers

您的文件将存储在向量buf中。如果您只想阅读标题,则可以阅读较小的块而不是filesize的所有块,并对其进行适当的处​​理。

答案 1 :(得分:0)

一般来说,&#34; meta&#34;图像部分是固定大小。

使用istream::read和二进制模式将文件读入矢量。使用图像格式规范,找到所需的字段。

每次一个字节构建多字节整数,而不是尝试将位置转换为整数和读取。这将帮助您克服Endianness的问题。