Первая часть ответа находится в первой строке вашего кода.
char a;
Переменная a
является единым char
, 8-битное значение, как правило, используется для хранения кода, представляющего символ дисплея. Если дисплей ASCII, то (значение) 0 = нет символов, (значение) 32 = пространство, величина 48 = (символ) '0', и т.д.
std::cin
является экземпляром класса std::istream
, он имеет различные элементы и перегрузки операторов для работы с разными типами. В случае char
, вы звоните
std::istream::operator(char)
Который читает один char
, ровно один, из входного потока и возвращается.
#include <iostream>
int main()
{
char a, b, c;
std::cin >> a >> b >> c;
std::cout << "a = " << a << ", b = " << b << ", c = " << c << '\n';
return 0;
}
Подсказка: 'while (std :: cin >> a)'. – 0x499602D2
Почему вы ожидаете, что это даст нам ошибку? – interjay
потому что его строка. Но потом я понимаю, что это похоже на 'std :: cin >> a >> a >> a;'. Как я могу это изменить? – Gasim