Sìsì, so che l'argomento è stato già affrontato svariate volte,
ma vi chiedo di aiutarmi a correggere il mio codice per migliorare nel c++.
Con questa funzione dovrei leggere la prima linea di testo da un file txt
codice:
char* FileTextReadFirstLine(FILE* file)
{
char byte;
int i = 0;
//con il prossimo loop salvo in i la lunghezza
//della prima linea nel file txt
while(!feof(file)) {
//Leggo un char dal file
fread(&byte,sizeof(char),1,file);
if(byte==13) break;
i++;
}
//Fino a qui il codice funziona, ritorna correttamente la lunghezza della prima linea.
//Adesso posso creare il mio array di char da riempire, rileggendo il file.
char* line = (char*) malloc(sizeof(char)*(i+1));
//i+1 per il null terminated char.
//Prima risetto a 0 la posizione nel file
fseek(file,0,SEEK_SET);
int a;
for(a=0;a<=i;a++) {
fread(line+a,sizeof(char),1,file);
}
*(line+a) = '/n'; //null-termino l'array
return(line);
}
In seguito, con cout << line; scopro che line è stata riempita di byte strani!
che errore ho fatto?