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
In seguito, con cout << line; scopro che line è stata riempita di byte strani!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); }
che errore ho fatto?

Rispondi quotando