|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2002
Messaggi: 65
|
[C++] un if che mi blocca un cin.get???
Ho questo problema da niubbo, sarà sicuramente una maialata,cerco qualcuno che mi illumini....
Ho un blocco di codice contenente un cin.get. Bene, questo preso da solo funziona benissimo, expr viene introdotta da tastiera senza prbl, se invece metto tutto il blocco all'interno di un normale if (che fa la scelta di questo blocco dal menu), mi si inchioda il programma! Il cursore diventa lampeggiante come se si dovesse introdurre la stringa, ma il programma è bloccato, non si riesce ad introdurre niente, e la cpu è occupata al 100% da sta minchia di programmino!!!! Ecco un esempio di ciò che intendo: Codice:
char a;
cin >> a;
if (a=='i'){
char expr[100];
cin.get (expr, 100, '\n');
while ( cin.get()!='\n' );
}
PS: Se la soluzione risulterà troppo semplice potete fustigarmi |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2002
Messaggi: 65
|
Siete in tanti... chi mi sa aiutare?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
You could try this
Codice:
char a;
cin >> a;
if (a=='i'){
cout << endl; // svuota i buff di in e out
char expr[100];
cin.get (expr, 100, '\n');
while ( cin.get()!='\n' );
}
__________________
Gnu/Linux User
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2002
Messaggi: 65
|
Grazie Lucas, ma non funziona neanche così.
Qualcosa di + ho capito però: non è l'if che rompe, ma il "cin >> a " prima del cin.get!!! Infatti se tolgo l'if non funziona lo stesso, mentre indipendentemente dall'if, se tolgo il cin x scegliere il blocco di istruzioni, funziona. Credevo che fosse l'if xchè quando lo teglievo, toglievo anche il cin >> a xchè pensavo non desse fastidio Cmq... come posso risolvere sta cosa? Come fanno il cin >> ed il cin.get a scontrarsi così? Come mai messi insieme nel modo precedente non fungono? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
prova ad usare un fflush(stdin); prima del cin.get
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:03.



















