Sono completamente nuovo in C++ e sto provando a scrivere un programma estremamente semplice, ma sto avendo problemi con l'inizializzazione di un intero. Ho spogliato giù ad un programma molto piccolo che ha ancora il problema:Perché cin, in attesa di un int, modifica la variabile int corrispondente a zero in caso di input non valido?
#include <iostream>
using namespace std;
int main()
{
cout << "Please enter your age\n";
int age = -1;
cin >> age;
cout <<"\n\n Your age is " << age << "\n\n";
}
ho letto che se si tenta di inserire una stringa, ad esempio abc
alla variabile age
, quindi l'input non dovrebbe riuscire e il valore dovrebbe essere lasciato da solo e pertanto è necessario stampare Your age is -1
.
Tuttavia, quando eseguo questo programma e digito abc
, viene stampato Your age is 0
. Perché?
Eccellente TestCase.Ma, purtroppo, un dupe. –