Просто используйте:
your_type x;
while (std::cin >> x)
{
// use x
}
operator>>
пропустит пробел по умолчанию.Вы можете связать вещи, чтобы прочитать несколько переменных одновременно:
if (std::cin >> my_string >> my_number)
// use them both
getline()
читает все в одной строке, возвращая это, независимо от того, пусто оно или содержит десятки разделенных пробелами элементов.Если вы предоставите необязательный альтернативный разделитель ala getline(std::cin, my_string, ' ')
, он все равно не будет выполнять то, что вам нужно, например вкладки будут считаны в my_string
.
Вероятно, для этого не нужно, но это довольно распространенное требование.В скором времени вас может заинтересовать чтение одной строки, разделенной новой строкой, и разделение ее на компоненты ...
std::string line;
while (std::getline(std::cin, line))
{
std::istringstream iss(line);
first_type first_on_line;
second_type second_on_line;
third_type third_on_line;
if (iss >> first_on_line >> second_on_line >> third_on_line)
...
}