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.

codice:
while(!feof(nome_file)) {
  fscanf(nome_file,"%d %s %s",&intero,stringa,stringa2);
}
Il problema sorge quando i dati sono separati da un carattere, mettiamo un ';' che non voglio leggere.
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:

codice:
while(!feof(nome_file)) {
  fscanf(nome_file,"%[^;] %[^;] %[^;]",&intero,stringa,stringa2);
}
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)?