2016-04-21 59 views
-3

我有一個txt文件,文件的內容是:讀取來自.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*以後複製到數組。

下面的te代碼正常工作時讀取值,但顯示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; 
} 
+0

到目前爲止已經嘗試完成這個目標? –

+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必須根據您的需要設置。

0
unsigned char tempArray[]= 
{ 
#include "file.txt" 
}; 
相關問題