Есть ли функция вроде getline
или getchar
, которая получит следующий символ, даже если это char
является пробелом? Поэтому, если бы у меня было a bc
, мне пришлось бы называть эту функцию четыре раза, чтобы получить 'a'
, ' '
, 'b'
и 'c'
.Как я могу получить следующий символ, даже если это пробел?
ответ
GetLine занимает всю строку, так для «в Ьс», вам придется разобрать эту строку самостоятельно.
Может попробовать ifstream как есть манипулятор, чтобы отключить пробельное поведение Пропустив:
stream >> std::noskipws;
Чтения отдельных символов с именованными функциями ввода символов в стандартной библиотеке, не пропускает пробела. То есть вопрос имеет неверное предположение.
На уровне C++ вы можете использовать istream::get
; существуют различные перегрузки.
На уровне C, getchar
и getwchar
, а также family.
Это хорошая идея, чтобы научиться находить вещи в документации.
Неформатированные входные функции не пропускают пробелы - см. here. Похоже, вы хотите get
. Из всего перечня, связанного выше:
Следующие стандартные функции библиотеки - это UnformattedInputFunctions.
std::getline, except that it does not modify gcount.
basic_istream::operator>>(basic_streambuf*)
basic_istream::get
basic_istream::getline
basic_istream::ignore
basic_istream::peek
basic_istream::read
basic_istream::readsome
basic_istream::putback, except that it first clears eofbit
basic_istream::unget, except that it first clears eofbit
basic_istream::sync, except that it does not modify gcount
basic_istream::tellg, except that it does not modify gcount
basic_istream::seekg, except that it first clears eofbit and does not modify gcount
std::ws, except that it does not modify gcount
Альтернатива отключить пропуск пробелов внутри отформатированные Функции ввода:
#include <iomanip>
...
char c;
std::cin >> std::noskipws >> c;
× 1 для списка. Ницца. Почему я не подумал об этом. –
@ Cheersandhth.-Alf: Я не могу требовать много кредита ... видел ссылку на странице ':: get', вместо того, чтобы думать, чтобы искать ее напрямую. Приветствия. –
Может http://en.cppreference.com/w/cpp/io/manip/skipws –
GetLine получает строку с 1 вызовом, а не 4. getchar - это нечто совершенно другое. – deviantfan