Istream использует не более N символов пробела

#c #iostream #istream

#c #iostream #istream

Вопрос:

Можно ли указать std::istream использовать только фиксированное количество (а именно, 1) символов пробела при применении оператора>>? У меня есть строка, которую я хотел бы разобрать на параметры, но некоторые из параметров пусты, что приводит к сбою последующих вызовов operator>>.

Ответ №1:

Попробуйте std::noskipws :

 std::cin >> std::noskipws;
char ws;
std::string firstField, secondField, thirdField;
std::cin >> firstField >> ws >> secondField >> ws >> thirdField;
  

Или вы могли бы преобразовать всю строку в строку (см. std::getline ), а затем разделить ее с помощью Boost.