Un saluto a tutti mi sapete dire il perchè se faccio questa funzione:
Codice PHP:
char line[] = "NOT ( battery AND DC ) ;"
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;
}
}
Funziona perfettamente, nel senso che riesco a visualizzare/parsare tutte le singole parole immesse fino al ";".
Mentre se la char line la faccio inserire dall'utente, cosi:
Codice PHP:
char line[2000];
printf("Scrivi la frase termina con un \" ;\". Esempio: NOT ( battery AND DC ) ;\n");
scanf("%s",line);
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;
}
}
Non funziona, nel senso che in output ottengo la prima parola (NOT), come seconda parola un carattere ascii a casaccio e poi esce 
Grazie a tutti