2016-04-21 6 views
-3

Ich habe eine txt Datei, den Inhalt der Datei zu speichern ist:Hexadezimalwert von .txt-Datei zu lesen und sie in unsigned char array []

:

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

I all diesen Wert in speichern müssen

unsigned char TempArray [10] = {0xAA, 0xBB, 0xCC, 0xdd, 0xEE, 0x00,0x00,0x00,0x00,0x00}.

ist es eine Lösung, damit meine:

TempArray [] = {0xaa, 0xBB, 0xcc, 0xdd, 0xEE, 0x1a, 0x2b, 0xff, 0x99,0x55}.

Notwendigkeit zum Speichern von Werten von .text Datei in bestimmten Standort des Arrays / nur weiter verwenden.

Wir danken Ihnen in Erwartung günstiger Antworten. :)

EDIT

‚bis jetzt habe ich von Charakter 1.txt Datei Charakter lese. Variable ch Speichern Sie den aktuellen Wert, ich versuche, den ch Wert zu ch2* später in Array zu speichern.

Der folgende Code funktioniert gut zum Lesen von Wert, zeigt aber segmentation fault, wenn ch2 im Bild kam.

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

was haben Sie bisher versucht, dies zu erreichen? –

+0

Eine ganze Zahl lesen, im Array speichern (warum nicht ein Vektor?), Mögliches Komma lesen, wiederholen. –

+0

Bitte geben Sie Code von dem, was Sie bisher versucht haben –

Antwort

0

mit Ihrem Code können Sie einfach Code:

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++; 
     } 
    } 
} 

Die Segmentation fault Sie sehen sind, denke ich, von

verursacht wird
char *ch2=NULL; 

Danach müssen Sie Speicherplatz zuweisen, wo Byte Lesen wird platziert. Sie können dazu malloc verwenden.

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

Wo size_of_you_buffer muss entsprechend auf Ihre Bedürfnisse eingestellt werden.

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