Originariamente inviato da oregon
La scanf ottiene solamente la prima parola e non la linea.
Usa la
fgets
con lo stdin.
P.S. Attenzione al titolo ... deve essere significativo ...
Grazie per la risposta,
avevo provato ad utilizzare la (f)gets, ma con scarsi risultati nel senso che il programma passa oltre, non si ferma per accettare l'input dell'utente.
Codice PHP:
char line[2000];
//memset (line,'0',2000);
printf("Scrivi la frase, termina con un \" ;\". Esempio: NOT ( battery AND DC ) ;");
fgets(line, 1999, stdin);
char *ptr = line;
char field[2000];
int n;
while ( sscanf(ptr, "%s%n", field, &n) == 1 )
{
printf("field = %s\n", field);
ptr = ptr + n + 1;
if ( *ptr == ';' )
{
break;
}
}
P.S.
Scusate per il titolo poco "ortodosso"