PDA

View Full Version : [C]-Problema di "salto" istruzioni


newtroll
05-11-2008, 10:56
Salve a tutti.
il mio primo messaggio su questo forum è per risolvere un dubbio circa un programma in c, per caricare un vettore di contocorrenti bancari, ed effettuare prelievi o accrediti.
Le procedure caricamento, prelievo e accredito funzionano, il problema è che in questa parte del main:
main()
{
char scelta;
carica(vettore_conti);
stampa(vettore_conti);

printf("intende depositare(d) o prelevare(p) dal suo conto?\n");
; //necessario per accedere alla scelta prelievo o deposito
scanf("%c",&scelta);
if(scelta== 'p'|| scelta== 'P')

prelievo(vettore_conti);
else if (scelta== 'd'|| scelta== 'D')
deposito(vettore_conti);

printf("inserire un valore per terminare la procedura");
scanf("%d",&pausa);
return 0;
}
succede che senza l'istruzione vuota che ho inserito ( con relativo commento),il programma "salta" tutta la parte dell' if con le procedure di accredito o prelievo, e passa direttamente all'istruzione successiva. Inserendo quell'istruzione vuota ( ; ) va tutto bene, ma non mi spiego il perchè.
se serve posto il codice intero, con relative procedure.
grazie.

edit: non so se possano servire a qualcosa, ma queste sono 2 screen di come varia l'esecuzione del programma con o senza istruzione vuota:
http://img385.imageshack.us/my.php?image=fungeqq9.jpg
http://img385.imageshack.us/my.php?image=nonfungepm1.jpg
bho..

royaleagle
05-11-2008, 15:56
Sembra che ti rimanga un "invio" nel buffer, quindi la scanf prende quello invece che aspettare una digitazione da parte dell'utente.
La soluzione è guardare qui (http://www.hwupgrade.it/forum/showpost.php?p=24645004&postcount=8) :)

newtroll
05-11-2008, 18:42
a quanto pare era proprio quello il punto,però se mi fosse capitato all'esame non vedo come avrei potuto risolvere... :mc: .
grazie mille :D