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