|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
sscanf
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... ![]() grazie a tutti per eventuali risposte. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
prova con:
Codice:
"%u %u %u %[^\n]%*c" ![]() |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
perfetto, grazie 1000 VICIUS, funziona alla grande!
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:53.