Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Stringhe
Forum - C/C++ - Stringhe - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:48
Giovedì, 05/03/2009
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());


PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 14:48
Venerdì, 06/03/2009
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

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:10
Venerdì, 06/03/2009
Testo quotato

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.

Testo quotato

invece io mi preoccuperei del fatto di usare gets()



Sicuramente e' deprecata, ma questo e' un altro problema.

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 19:07
Venerdì, 06/03/2009
nn c'era nessuna critica, siamo d'accordo!:rotfl:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:12
Venerdì, 06/03/2009
Testo quotato

Postato originariamente da eddiewrc:

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



Ok

Ultima modifica effettuata da theprogrammer il 06/03/2009 alle 19:13
PM Quote
Avatar
Cesaruz (Normal User)
Pro


Messaggi: 83
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 8:20
Sabato, 07/03/2009
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:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 12:42
Sabato, 07/03/2009
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.

PM Quote
Avatar
Cesaruz (Normal User)
Pro


Messaggi: 83
Iscritto: 25/10/2007

Segnala al moderatore
Postato alle 20:28
Sabato, 07/03/2009
??:-?Ehm...sono diciamo alle prime armi con il C...quindi mi potresti spiegare come dovrei usare premettendo che i file ancora nn gli ho fatti.
Grazie anticipatamente:k:

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo