fread tratta dati grezzi, qualsiasi essi siano (li legge come sequenza di byte equindi char).
Ho supposto che il tuo file sia del tipo
dove dopo il carattere c'è un ritorno a capo RC=\n
prova a salvarlo come miofile ed esegui questo frammento di programma
codice:
#include <stdio.h>
#include <stdlib.h>
int main() {
struct data {
char ascii;
char RC;
};
int i;
FILE * pFile;
long size;
char * buffer;
size_t result;
pFile = fopen ( "miofile" , "rb" );
if ( !pFile) {
fputs ("File error",stderr);
exit (1);
}
// ottiene la lunghezza del file
fseek (pFile , 0 , SEEK_END);
size = ftell (pFile);
rewind (pFile);
// alloco la memoria per contenere tutto il file
buffer = (char*) malloc ( sizeof( char ) * size );
if ( !buffer ) {
fputs ("Errore di memoria", stderr);
exit (2);
}
// copia il fila in buffer:
result = fread (buffer, 1, size, pFile);
if ( result != size) {
fputs ("Errore di lettura del file", stderr);
exit (3);
}
/* tutto il file è in memoria */
fclose (pFile);
struct data * miei_dati = (struct data * ) buffer;
for ( i = 0; i < size / sizeof( struct data ); i++ ) {
printf("%d %c%c", i, miei_dati[i].ascii, miei_dati[i].RC);
}
free (buffer);
}
se usi windows ed il file lo generi con un editore tipo wordpad forse il ritorno a capo lo fa con la sequenza LF RC e quindi devi un pochino modificare la logica.
ciao
sergio