-

[RISOLTO] Aiuto con File in C

Stato
Discussione chiusa ad ulteriori risposte.

Ibernato

Utente Attivo
2,817
1,205
Hardware Utente
CPU
i7 8700K
Dissipatore
Scythe Fuma
Scheda Madre
ASRock z370 Taichi
Hard Disk
Hd Toshiba 1TB
RAM
DDR4 16GB 3200 Corsair
Scheda Video
GTX 1080ti SuperJetStream
Monitor
Asus MG28UQ
Alimentatore
Corsair RMx 650
Case
Nzxt s340 elite bianco
Sistema Operativo
Windows 10 Pro
#1
Salve a tutti,
ho due tipi definiti in questo modo a cui sono associati due array:
Codice:
typedef unsigned char byte_t;
typedef unsigned int word_t;

static byte_t buffer1[BUFFER_SIZE];
static byte_t buffer2[BUFFER_SIZE * 2 + 9];
Supponiamo che io ho in un file la seguente stringa:
1545914392475.png


In buffer1 mi salvo l'intero file in questo modo:
Codice:
 int length = fread(buffer1, sizeof(byte_t), BUFFER_SIZE, stdin);
Ora se io faccio una printf e mi stampo il valore di buffer1[0] ottengo il valore 54 che corrisponde al numero 6 (e fin qui ci siamo visto che buffer1 legge 1byte alla volta).

Poi converto buf1 di tipo unsigned char in unsigned int in questo modo:
Codice:
word_t* in = (word_t*)buf1;
Ora se io faccio una printf e mi stampo il valore di buffer1[0] ottengo il valore 808463926 (poichè ora possiamo leggere 4bytes).
La mia domanda è: quel valore corrisponde ai valore 6.00?
Post unito automaticamente:

Risolto, ho capito che bisogna usare le operazioni bit a bit per ottenere i vari byte
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Discussioni Simili


Entra