int x = 10,y = 18; char z = '*'; cin>> x >> y >> z; cout<< x << " " << y << " " << z << endl
Учитывая входные данные "46", "A" и "49" в указанном порядке, выходной сигнал при запуске программы равен "460 *" (исключая цитаты. Почему это так?
x и y являются целочисленными типами. z является char.
x
y
z
char
С учетом входных данных 46 A 49,
46
A
49
cin>> x успешно и устанавливает x в 46.
cin>> x
cin>> y завершается ошибкой, поскольку A не является целым числом. y установлен на 0 и cin failbit установлен.
cin>> y
0
cin
Поскольку cin находится в состоянии сбоя, cin>> z ничего не делает и z остается неизменным.
cin>> z
Ваш ввод не удается набрать «А», когда ожидается целое число. Он не конвертирует его в свой код ascii автоматически. Вот почему ваша последняя переменная остается прежней. В этом случае вторая переменная будет установлена на ноль.