Se c'è un limite massimo ti basta allocare tanto spazio quanto è tale limite, altrimenti puoi utilizzare un buffer di lunghezza fissa, leggere un tot di caratteri alla volta (es: 1000) e poi estrarre da quel buffer le parole... in sostanza, fare la stessa cosa che facevi prima ma senza leggere direttamente dal file. Dovresti gestire però il caso delle parole "tagliate" tra la fine del buffer in una lettura e l'inizio nella lettura successiva... altrimenti, come terza e ultima alternativa, puoi leggere tutto carattere per carattere direttamente dal file così anche se ti accorgi, durante la lettura, che la parola è molto lunga puoi riallocare spazio con la realloc()... insomma c'è un po' da "industriarsi", altrimenti prova a stabilire un limite di lunghezza massimo come ti suggerivo all'inizio e diventa tutto più semplice.

Rispondi quotando