|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2008
Messaggi: 551
|
[C] Problema gets()
ciao a tutti
il problema è che con i=1 (quindi alla seconda iterazione del ciclo for, mi salta il gets dell'artista e passa al titolo con un output di questo genere Codice PHP:
Codice PHP:
__________________
Se non hai ancora deciso per il tuo futuro Don'T panic!!! segui le tue passioni, ti porteranno lontano. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
può anche essere che artista è vuoto!?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2008
Messaggi: 551
|
ma quello è l'output in fase di input
cioè è quello che mi compare sullo schermo quando mi chiede di inserire i vari campi
__________________
Se non hai ancora deciso per il tuo futuro Don'T panic!!! segui le tue passioni, ti porteranno lontano. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
La scanf() non toglie '\n' dal buffer di input, così alla successiva gets() è come se tu ricevessi subito l'invio.
Non usare mai gets(), comunque, usa sempre fgets().
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jun 2008
Messaggi: 551
|
Quote:
fgets legge da file devo usare gets
__________________
Se non hai ancora deciso per il tuo futuro Don'T panic!!! segui le tue passioni, ti porteranno lontano. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Una veloce soluzione è togliere a mano tutti i caratteri rimasti nel buffer finché non c'è un invio:
Codice:
scanf(...);
while (getchar() != '\n') {
/* non fareniente di niente */
}
Nessuno ti vieta di usare stdin come stream di input.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2008
Messaggi: 551
|
non lo so, non mi convince.
cmq inizialmente avevo provato con scanf che funziona alla grande se non fosse che quando vede uno spazio pensa che sto scrivendo già il campo successivo...
__________________
Se non hai ancora deciso per il tuo futuro Don'T panic!!! segui le tue passioni, ti porteranno lontano. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Non ti convince la fgets()?
![]() Comincia ad usarla, invece! Purtroppo la gets() non fa alcun controllo sulla lunghezza dell'input, e ti espone a rischi di stack smashing e robaccia simile. Quote:
ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:26.





















