|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2001
Messaggi: 57
|
[c]Leggere stringa da file con spazi
Salve a tutti,
un piccolo aiutino... Come posso leggere una stringa da file del tipo: c:\documents and settings\cartella\file.ext senza che mi si fermi allo spazio e senza sapere la sua lunghezza a priori? (cosa che fa fgets e scanf)? Grazie per l'aiuto |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mmmmhhh...mi sembra che fgets legga fino alla fine della linea (o fino alla dimensione specificata) e non si fermi sugli spazi...
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2001
Messaggi: 57
|
si infatti mi sono espresso male, ma fgets ha lo svantaggio di prendere anche il codice di fine riga, e se poi passo questa path che ho memorizzata su un buffer mi dice che non è valida (perchè ha il fine riga compreso) e non sapendo la size della path a priori imposto un fgets mettiamo di 100 caratteri per essere sicuro di prenderla tutta, ma poi prendo anche il \n
Come risolvo sta rogna? |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2001
Messaggi: 57
|
Ho risolto in un modo orribile...
Char *cImagePath; cImagePath = new char[100]; fscanf (pfVTCPara, "%[^@]", cImagePath); Avendo memorizzato la stringa nella forma: c:\documents and settings\cartella\file.ext@ ossia con un carattere @ che appena lo incontra si ferma.... esiste un modo decisamente più carino? Mi domando perchè ogni tanto il c++ è così poco flessibile.. bah! |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Codice:
char file[MAX_PATH + 1];
//apri il file
if(fgets(file, MAX_PATH, f);)
{
if(file[strlen(file)-1] != '\n')
//errore il nome del file è troppo lungo
else
{
file[strlen(file)-1] = '\0';
//fai quello che devi fare con il nome del file
}
}
//chiudi il file
Mentre la fscanf non li evita... PS : al posto della @ potresti mettere \n...almeno non dovresti cambiare il contenuto del file... |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Oct 2001
Messaggi: 57
|
Grazie ora funziona... sei un mito
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Bene
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:05.



















