Во-первых, я понимаю, что
cin >> std::noskipws >> str;
должен вставлять целую строку из cin
как "у меня есть пробелы" в str
.Однако это только помещает «я» в str
.Это может быть ложным предположением, в случае чего std::noskipws
делает?
Я знаю, что есть функция std::getline
, и она работает, но просто для образовательных целей я решил, что попытаюсь получить std::noskipws
работать на меня.Я пытался в прошлом, и он просто никогда не работает, поэтому я обычно продолжаю и использую std::getline
.
Я думаю, что до сих пор обнаружил, что std::noskipws
технически просто сбрасывает std::skipws
, что внутренне для basic_iostream
просто вызывает
ios_base::unsetf(std::ios::skipws);
или
ios_base::unsetf(ios_base::skipws);
Поэтому я попытался унаследовать свою собственную потоковую форму basic_iostream
и установить эти флаги (сбросив) их вручную.Все еще нет игры в кости.
Итак, я просто полностью покинул базу или есть способ заставить это работать?