Как и многие новички, вы немного озадачены типами .cin >> a
будет читать из cin
в переменную a
независимо от типа a
, поэтому float
, int
, std::string
и т. Д. Все работают с >>
.Это упрощение, но на данный момент достаточно близко.
a = cin.get()
предназначено только для чтения отдельных символов, возвращает следующий символ на входе.В вашей первой программе происходит то, что значение char из get()
преобразуется в значение с плавающей запятой.Пропуск деталей, но это не то, что имеет большой смысл, поэтому вы получаете странные результаты.
Другое различие между >>
и get()
состоит в том, что >>
пропускает пробел, но get()
не будет.Поэтому, если вы хотите прочитать один символ независимо от того, является ли это пробелом или нет, используйте get()
, в противном случае используйте >>
.