我有一个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文件中的值存储到仅使用c / cpp的数组的特定位置。
感谢您期待有利的回复。 :)
修改
'到现在为止,我正逐字逐句地阅读1.txt
个文件。变量ch
存储了curent值,我试图将ch
值存储到ch2*
以后复制到数组。
下面的代码适用于阅读价值,但在segmentation fault
出现时会显示ch2
。
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;
}
答案 0 :(得分: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
。
答案 1 :(得分:0)
unsigned char tempArray[]=
{
#include "file.txt"
};