gpt4 book ai didi

c - 从 .txt 文件读取十六进制值并将其存储到 unsigned char array[ ]

转载 作者:行者123 更新时间:2023-11-30 21:08:49 25 4
gpt4 key购买 nike

我有一个txt文件,文件内容为:

0x1a,0x2b,0xff,0x99,0x55

我需要将所有这些值存储到:

unsigned char tempArray[10]={0xaa,0xbb,0xcc,0xdd,0xee,0x00,0x00,0x00,0x00,0x00}.

有什么解决方案可以让我的:

tempArray[]= {0xaa,0xbb,0xcc,0xdd,0xee,0x1a,0x2b,0xff,0x99,0x55}.

需要将 .text 文件中的值存储到数组的特定位置,使用 /仅。

感谢您期待积极的回复。 :)

编辑

'到目前为止我正在阅读1.txt逐个字符地文件。变量ch存储当前值,我正在尝试存储 ch值为 ch2*稍后复制到数组。

下面的代码可以很好地读取值,但显示 segmentation faultch2出现在图片中。

unsigned char tempArray[10]={0xaa,0xbb,0xcc,0xdd,0xee,0x00,0x00,0x00,0x00,0x00};

int main()
{
char ch,i=0;

FILE *fp;

char *ch2=NULL;

fp = fopen("1.txt","r"); // read mode

if( fp == NULL )
{
printf("err");

return 0;
}

printf("The contents of file are :\n");

while(( ch = fgetc(fp)) != EOF )
{
if(ch==',')
{
printf(" ");
}
else
{
printf("%c",ch);

//sprintf(ch2,"%c",ch2);

//printf("\tch2 :: %s",ch2);
}

}

i++;

fclose(fp);

return 0;
}

最佳答案

使用您的代码,您可以简单地编写代码:

uint32_t index = 0;

while(( ch = fgetc(fp)) != EOF )
{
if(ch==',')
{
printf(" ");
}
else
{
printf("%c",ch);

tempArray[index] = ch;

if ( tempArray < (sizeof(tempArray)/sizeof(tempArray[0])) )
{
index++;
}
}
}

我猜您所看到的段错误是由

引起的
char *ch2=NULL;

之后,您必须分配用于放置字节读取的空间。您可以使用 malloc 来做到这一点。

char *ch2=malloc(size_of_you_buffer*sizeof(unsigned char);

其中 size_of_you_buffer 必须根据您的需要进行设置。

关于c - 从 .txt 文件读取十六进制值并将其存储到 unsigned char array[ ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36761320/

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