Подтвердить что ты не робот

Несколько входов на одной линии

Я смотрел безрезультатно, и я боюсь, что это может быть такой простой вопрос, который никто не осмеливается спросить.

Можно ли вводить несколько элементов из стандартного ввода в одну строку? Я имею в виду это:

float a, b;
char c;

// It is safe to assume a, b, c will be in float, float, char form?
cin >> a >> b >> c;
4b9b3361

Ответ 1

Да, вы можете вводить несколько элементов из cin, используя именно тот синтаксис, который вы описываете. Результат по существу идентичен:

cin >> a;
cin >> b;
cin >> c;

Это связано с техникой, называемой "цепочкой операторов".

Каждый вызов operator>>(istream&, T) (где T - произвольный тип) возвращает ссылку на свой первый аргумент. Поэтому cin >> a возвращает cin, который может использоваться как (cin>>a)>>b и т.д.

Обратите внимание, что каждый вызов operator>>(istream&, T) сначала потребляет все пробельные символы, а затем столько символов, сколько требуется для выполнения операции ввода, вплоть до (но не включая) первого следующего символа пробела, недопустимого символа или EOF.

Ответ 2

Да, вы можете.

Из cplusplus.com:

Поскольку эти функции являются функциями перегрузки операторов, обычным способом их вызова является:

   strm >> variable;

Где strm - это идентификатор объекта istream, а variable - объект любого типа, поддерживаемый как правильный параметр. Также можно вызвать последовательность операций извлечения как:

   strm >> variable1 >> variable2 >> variable3; //...

который является таким же, как выполнение последовательных выделений из одного и того же объекта strm.

Просто замените strm на cin.