E avevi ragione, perché ricordavo maleil whitespace a fine scanf non funziona, perché la scanf continua ad aspettare a ritornare finché riceve whitespace, per cui non ritorna finché non vengono inseriti caratteri non-whitespace. Chiedo scusa per la confusione.
![]()
Rileggendo le manpage della scanf, comunque, salta fuori che il "pulire" lo stream di input dovrebbe servire solo se dopo fai a fare una scanf con %c o con %[...] (o fai un'operazione di input non formattato, come fgets o fread), visto che, con l'eccezione degli specificatori in questione, il whitespace rimasto viene automaticamente scartato prima di iniziare a fare il parsing di quanto specificato nella stringa di formato (è come se nella stringa di formato ci fosse sempre uno spazio iniziale).


il whitespace a fine scanf non funziona, perché la scanf continua ad aspettare a ritornare finché riceve whitespace, per cui non ritorna finché non vengono inseriti caratteri non-whitespace. Chiedo scusa per la confusione.
Rispondi quotando