Как читать пробелы в C++ с помощью cin: примеры и методы

Да, объект cinв C++ по умолчанию не читает пробелы. По умолчанию при использовании оператора извлечения (>>) с cinон пропускает все ведущие пробелы (пробелы, табуляции и новые строки), а затем читает следующий доступный не -пробельный символ или последовательность символов.

Вот пример, подтверждающий это:

#include <iostream>
#include <string>
int main() {
    std::string input;
    std::cout << "Enter a string: ";
    std::cin >> input;
    std::cout << "Input: " << input << std::endl;
    return 0;
}

В приведенном выше примере, если вы введете «Hello World» (с пробелом между двумя словами), cinпрочитает только «Hello» в переменную input., а «Мир» останется во входном буфере.

Если вы хотите прочитать всю строку, включая пробелы, вы можете использовать функцию getlineиз библиотеки . Вот пример:

#include <iostream>
#include <string>
int main() {
    std::string input;
    std::cout << "Enter a string: ";
    std::getline(std::cin, input);
    std::cout << "Input: " << input << std::endl;
    return 0;
}

В этом случае функция getlineсчитывает всю строку, включая все начальные и конечные пробелы, и сохраняет ее в переменной input.