2015-10-21 2 views
-3

Есть ли функция вроде getline или getchar, которая получит следующий символ, даже если это char является пробелом? Поэтому, если бы у меня было a bc, мне пришлось бы называть эту функцию четыре раза, чтобы получить 'a', ' ', 'b' и 'c'.Как я могу получить следующий символ, даже если это пробел?

+1

Может http://en.cppreference.com/w/cpp/io/manip/skipws –

+0

GetLine получает строку с 1 вызовом, а не 4. getchar - это нечто совершенно другое. – deviantfan

ответ

0

getline(cin,variable)

GetLine занимает всю строку, так для «в Ьс», вам придется разобрать эту строку самостоятельно.

0

Может попробовать ifstream как есть манипулятор, чтобы отключить пробельное поведение Пропустив:

stream >> std::noskipws; 
1

Чтения отдельных символов с именованными функциями ввода символов в стандартной библиотеке, не пропускает пробела. То есть вопрос имеет неверное предположение.

На уровне C++ вы можете использовать istream::get; существуют различные перегрузки.

На уровне C, getchar и getwchar, а также family.

Это хорошая идея, чтобы научиться находить вещи в документации.

3

Неформатированные входные функции не пропускают пробелы - см. 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; 
+0

× 1 для списка. Ницца. Почему я не подумал об этом. –

+0

@ Cheersandhth.-Alf: Я не могу требовать много кредита ... видел ссылку на странице ':: get', вместо того, чтобы думать, чтобы искать ее напрямую. Приветствия. –