我有一个包含数据的原始文件
XX XX其中每个X代表1个字节。
如何分别读取前两个字节和后两个字节?我只能一次性阅读所有内容。读完2个字节后,我想将其转换为整数。
FILE * f = fopen(filename, type);
// Position pointer at 0
fseek(f, 0, SEEK_END);
// Read file size
long lSize = ftell(f);
// Initialize temporary container
char *pixels;
// Allocate memory to temporary container
data = (char*)malloc(sizeof(char)*lSize);
// Read intensity data
fread(data, 1, lSize, f);
感谢。
XX XX X XXX ....
每个X = 1个字节
前两个X代表行数 第二个X代表cols数
XXX起表示图像的强度数据。我可以通过将fseek移动到位置编号6来读取图像,但是我手动指定了行数和列数,因为我不知道如何读取前两个字节和下一个2个字节单独
答案 0 :(得分:0)
没有任何样本数据很难做到,但你会想要这样的东西。顺便说一下,您不需要找到ftell()
文件的长度。
未经测试的代码......
unsigned short nrows,ncols;
FILE * f = fopen(filename, type);
// Get number of rows
fread(&nrows,2,1,f);
// Get number of cols
fread(&ncols,2,1,f);
// Read all rows, one row at a time
for(r=0;r<nrows;r++){
row[r]=(unsigned short*)malloc(ncols*2);
fread(row[r],cols*2,1,f);
}