|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2002
Messaggi: 16
|
[c]scanf e fflush
ciao
vi ringrazio in anticipo per gli aiuti quando utilizzo + scanf mi riconosce solo il primo e salta le altre se non uso "fflush(stdin);". Ho avuto questo problema con dev-c++ e visual studio. C'è un modo per evitare di inserire ogni volta il comando fflush dopo ogni scanf? |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Dec 2002
Messaggi: 16
|
il problema rimane anche se uso getchar()
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2003
Città: addio fabriANO... mò sto a Roma ahò!!
Messaggi: 579
|
è vero! c'è di più, se si vuole acquisire una stringa, mica si può fare
scanf("%s",str) se la stringa è composta da una parola sola è OK; ma se per esempio scrivi "ciao peppe" la lettura si ferma al primo spazio e i resto della stringa rimane "incastrato"... cioè scanf("%s",str) scanf("%i",&num) se faccio così e la stringa contiene uno spazio, la prima parola viene acquisita, e la seconda va a finire sul secondo scanf con i risultati che puoi immaginare!! devo usare per forza la gets, ma perchéééééé!!!!!!!!
__________________
Tavshan Pasha Bazar: Oggetti etnici per il relax! |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jul 2002
Città: Roma
Messaggi: 806
|
Quote:
![]() Il C, nel caso della scanf, considera lo spazio come un separatore di tokens. Astuto, direi! |
|
![]() |
![]() |
![]() |
#5 | ||
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Re: [c]scanf e fflush
Quote:
E' una brutta abitudine da non prendere. E poi, per leggere una stringa, è più sicura fgets() . Quote:
Codice:
while (getchar() != '\n') ; Ah: puoi trovare utile questa FAQ.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
ma fflush non serviva a pulire il buffer??
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2002
Città: somewhere in Europe
Messaggi: 2554
|
non capisc perchè non vuoi usare gets
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: May 2003
Messaggi: 119
|
Nn vorrei dire 1 cavolata, ma almeno sotto Linux dovrebbe esserci 1 kiamata a sistema nella qale specifiki qando viene svuotato il buffer d lettura (ke d default è svuotato ogni \n) in modo da poterlo svuotare a ogni carattere ke si legge senza usare la fflush, ma purtroppo nn ricordo il nome d qesta funzione
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:52.