PDA

View Full Version : C++ e comando cin.get()


Metalmino
23-01-2012, 17:47
Raga stavo provando un pò il comando cin.get() per convertire le lettere in numeri secondo ASCII. Il problema è che la x me la inizializza bene ma la y no. Cioè, se scrivo solo x e premo invio non mi chiede di scrivere anche y e mi dà un valore sballato per y, idem se scrivo tutte e due le lettere prima di premere invio.

Qualche aiuto?

#include <iostream>
using std::cin;
using std::endl;
using std::cout;




int main()
{
int x, y;
cout << "Scrivi due lettere: " << endl;
x = cin.get();
y = cin.get();

cout << x << endl;
cout << y << endl;

return 0;
}

vendettaaaaa
23-01-2012, 17:59
Non ti dà un valore sballato, ti dà y = 10 che corrisponde a '\n'.

Allo stesso modo, se scrivi
a z[invio]
ottieni x = 97, giusto, e y = 32, dove 32 = ' '

E se scrivi
az
ottieni x = 97, y = 122.

Questo perchè il secondo cin prende il newline come carattere.

Dovresti usare cin.ignore:
x = cin.get(); cin.ignore(100,'\n');
y = cin.get(); cin.ignore(100,'\n');