如何使用 fread 读取第一个两个字节和接下来的两个字节?
How to use fread to read 1st two bytes and next two bytes?
我有一个以字节为单位的原始文件
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 个字节
第2个X代表行数
第二个X代表列数
XXX以后表示图像的强度数据。我可以通过将 fseek 移动到位置 6 来读取图像,但是我手动指定了行数和列数,因为我不知道如何分别读取第一个两个字节和接下来的两个字节
没有任何示例数据很难做到这一点,但您会想要这样的东西。顺便说下带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);
}
我有一个以字节为单位的原始文件
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 个字节
第2个X代表行数 第二个X代表列数
XXX以后表示图像的强度数据。我可以通过将 fseek 移动到位置 6 来读取图像,但是我手动指定了行数和列数,因为我不知道如何分别读取第一个两个字节和接下来的两个字节
没有任何示例数据很难做到这一点,但您会想要这样的东西。顺便说下带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);
}