Oppure

Loading
05/03/09 15:45
Cesaruz
Si programmo in C solo in ambiente linux...
aaa
05/03/09 19:48
theprogrammer
Quindi la

fflush(stdin);

potrebbe non funzionare (dato che non e' standard e il suo funzionamento e' garantito solo con MS Visual C++) ...

Utilizza una riga del tipo

while(!getchar());

aaa
06/03/09 13:48
eddiewrc
fflush funziona sotto linux... solo che di solito si usa per svuotare il buffer dello standard output e non dello std_in. in questo senso può dare problemi, come chiamandola con parametro NULL.
(grazie a qualche centinaio di fflush siamo riusciti a debuggare il nostro ultimo progetto, usando il pinguino)

invece io mi preoccuperei del fatto di usare gets().... sbaglio o ha problemi di buffer overflow? da quel che so è super-deprecata
aaa
06/03/09 16:10
theprogrammer
Postato originariamente da eddiewrc:

fflush funziona sotto linux... solo che di solito si usa per svuotare il buffer dello standard output e non dello std_in.


E' proprio quello che ho detto. Usandola per lo stdin con

fflush(stdin);

il suo funzionamento NON e' assicurato in quanto non standard e su Linux e gcc esiste proprio questo problema.

invece io mi preoccuperei del fatto di usare gets()


Sicuramente e' deprecata, ma questo e' un altro problema.
aaa
06/03/09 18:07
eddiewrc
nn c'era nessuna critica, siamo d'accordo!:rotfl:
aaa
06/03/09 18:12
theprogrammer
Postato originariamente da eddiewrc:

nn c'era nessuna critica, siamo d'accordo!:rotfl:


Ok
Ultima modifica effettuata da theprogrammer 06/03/09 18:13
aaa
07/03/09 7:20
Cesaruz
L'idea del while(!getchar()); è semplice e intelligente...grazie mille!!
Cmq uso la gets() perchè in questo modo prendendo l'intera riga posso controllare meglio ll'input dell'utente con specifici messaggi di errore...mentre mi pare che la scanf prende non per esempio la stringa cosi come viene inserita ma come il suo indirizzo e quindi se l'utente sbaglia l'inserimento non posso controllare come vorrei...:)
Spero dio essere stato chiaro..cmq se c'è un modo per effetuare controlli anche con la scanf mi farebbe piacere conoscerlo...
Grazie anticipatamente:k:
aaa
07/03/09 11:42
theprogrammer
Sì ... pero', in effetti, con la gets puoi incorrere facilmente in un buffer overflow.

Al suo posto, con le medesime funzionalità, prova ad usare la

fgets

usando lo stdin come handle del file.
aaa