71104
21-07-2005, 00:00
problema: in un mio programma C una certa funzione deve estrarre alcuni parametri da una stringa che ha il seguente formato: "%u %u %u %s"
cioè in pratica ci trovo 3 interi senza segno separati da uno spazio, ed infine una stringa.
ora il problema è che ho usato la sscanf per leggere i parametri, la quale però non mi prende per intero l'ultimo parametro nel caso in cui questo contenga spazi; cioè, se il 4° parametro, la stringa, è una stringa contenente degli spazi, la sscanf le considera più stringhe separate da spazi, e quindi legge solo il primo pezzo fermandosi al primo spazio che incontra, mentre io vorrei leggere tutto fino alla fine.
come posso risolvere? non mi interessa se devo evitare la sscanf (anzi pure meglio, visto che non mi permette di fare un controllo sulla lunghezza del 4° parametro), l'importante è che riesco ad avere i 3 numeri in tre variabili e tutto il resto della stringa in un buffer a parte; vorrei evitare il parsing diretto... :D
grazie a tutti per eventuali risposte.
cioè in pratica ci trovo 3 interi senza segno separati da uno spazio, ed infine una stringa.
ora il problema è che ho usato la sscanf per leggere i parametri, la quale però non mi prende per intero l'ultimo parametro nel caso in cui questo contenga spazi; cioè, se il 4° parametro, la stringa, è una stringa contenente degli spazi, la sscanf le considera più stringhe separate da spazi, e quindi legge solo il primo pezzo fermandosi al primo spazio che incontra, mentre io vorrei leggere tutto fino alla fine.
come posso risolvere? non mi interessa se devo evitare la sscanf (anzi pure meglio, visto che non mi permette di fare un controllo sulla lunghezza del 4° parametro), l'importante è che riesco ad avere i 3 numeri in tre variabili e tutto il resto della stringa in un buffer a parte; vorrei evitare il parsing diretto... :D
grazie a tutti per eventuali risposte.