Salve, mi appello al vostro aiuto per una cosa probabilmente molto semplice ma sulla quale sto perdendo il sonno. Devo leggere dei dati da file, e fin qui nessun problema, ipotizzandoli separati da spazio, ossia:
intero1 stringa1 stringa2
intero2 stringa3 stringa4
.
.
.
interon stringan stringan+1
mi basta fare questo, e tutto funziona perfettamente.
Il problema sorge quando i dati sono separati da un carattere, mettiamo un ';' che non voglio leggere.codice:while(!feof(nome_file)) { fscanf(nome_file,"%d %s %s",&intero,stringa,stringa2); }
Ossia:
intero1;stringa1;stringa2
intero2 stringa3;stringa4
.
.
.
interon;stringan;stringan+1
Ho tentato con [^;] (che in teoria dovrebbe leggere il tutto senza il carattere specificato), nel modo che segue, ma senza successo:
Ho fatto poi altre prove, ma senza risultati, al più finendo in un ciclo infinito. Penso che ci sia un modo diretto per farlo (anzi, ne son piuttosto sicuro), o l'unica è leggere tutta la pappardella in una volta e poi smanettarci su con taglia e cuci vario (ditemi di no, vi prego)?codice:while(!feof(nome_file)) { fscanf(nome_file,"%[^;] %[^;] %[^;]",&intero,stringa,stringa2); }

Rispondi quotando