Да, объект 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.