Рассмотрим этот код:
int xx;
std::cin >> std::setfill('0') >> std::setw(4) >> xx;
При отправке 12
на стандартный ввод я ожидаю, что значение xx
будет 1200
, а при отправке 12345
я ожидаю, что оно будет 1234
.
Однако кажется, что std::setfill
и std::setw
не действуют, и я получаю 12
и 12345
соответственно.
Это баг или так по стандарту? Есть ли хороший способ получить ожидаемую функциональность?
Также обратите внимание, когда я меняю тип xx
на std::string
, std::setw
вступает в силу, а std::setfill
все еще нет.
Мой компилятор gcc-7.0.1
.
std::setfill
поддерживается в операциях с потоком input? Я знаю, чтоstd::setw
есть, но теперьstd::setfill
тоже??? - person WhozCraig   schedule 01.03.2017std::setfill
поддерживается во входном потоке. en.cppreference.com/w/cpp/io/manip/setfill - person Shravan40   schedule 01.03.2017