gpt4 book ai didi

c - 我被这段代码困住了,对 FILE 结构和 fopen 函数有疑问

转载 作者:行者123 更新时间:2023-11-30 20:05:57 25 4
gpt4 key购买 nike

 typedef struct tagFileheader    
{
unsigned short Type; // 00h File Type Identifier to check if the file is bmp or not
unsigned int FileSize; // 02h Size of bmp file No.of bytes of the bitmap file
unsigned int PxOffset; // 0Ah Offset to bitmap pixel data
}Fileheader;

Fileheader filehdr;
Fileheader *pFileheader = &filehdr;

unsigned short Get16U(unsigned int *x)
{
unsigned short temp;
temp = *x & (0xFFFF);
return temp;
}

unsigned int Get32U(unsigned int *x)
{
unsigned int temp;
temp = *x ;
return temp;
}

int Get32(unsigned int *x)
{
int temp;
temp = *x ;
return temp;
}

void main()
{
unsigned int headersize,i ;

bAddress = fopen("D:/Tapan/Projects/Jacquard/BMP/03Body.bmp","rb"); // open the file and send the start address of its memory location

pFileheader->Type = Get16U(bAddress); // save the first two bytes of bmp file data
(char*)bAddress++;
(char*)bAddress++; // increment the address by 2 bytes to reach address of "Filesize" parameter

if(pFileheader->Type == bmpSIGNATURE) // read further bytes of the FILE header and INFO header only if the file is a bitmap
{

pFileheader->FileSize = Get32U(bAddress); // save the filesize
bAddress = bAddress + 2; // increment the address by 8 bytes to reach address of "offset" parameter

pFileheader->PxOffset = Get32U(bAddress); // save the offset
bAddress++; // increment the address by 4 bytes to reach address of "info header size" parameter
}
}

这是我的代码。我在此代码中的主要目的是读取 bmp 文件头。我想声明一个指针,该指针将保存由 fopen() 创建的缓冲区的起始地址。并使用该起始地址从缓冲区读取数据。我在 ARM Controller 中使用此代码。这不是完整的代码。

在 main 之前,我已将 bAddress 全局声明为 -

unsigned int *bAddress

当我编译代码时,出现以下错误——“int”类型的值无法分配给“unsigned int*”类型的实体现在我的问题是,我的指针声明正确吗?我见过 FILE 被用来为 fopen() 声明一个指针变量我应该如何在这里使用FILE。我应该如何声明FILE的结构

最佳答案

使用

(char*)bAddress++;
(char*)bAddress++;

不会将FILE*移动两个字符。事实上,它会使 bAddress 无法使用。您需要的是:

fgetc(bAddress);
fgetc(bAddress);

但是,我有一种感觉,改变这两行并不能解决你的问题。您显然不了解如何使用 FILE* 执行 I/O。在实际程序中使用FILE*之前,您需要花一些时间阅读文件 I/O 的工作原理。

您可以从 http://www.tutorialspoint.com/cprogramming/c_file_io.htm 开始学习教程.

关于c - 我被这段代码困住了,对 FILE 结构和 fopen 函数有疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com