Средство форматирования setfill()
предназначено для заполнения пустого пространства путем повторения одного символа.Поэтому невозможно получить этот эффект, используя строку.
Для форматирования времени у вас будет возможность использовать put_time()
со строкой форматирования для указания желаемого формата (например, Y
для 2018
и y
для18
), если у вас есть реальная дата (например, 2018), переданная в структуре tm
.
В вашем случае вы можете попробовать что-то вроде:
cout << (year<100 ? year:year+2000);
Но лучшим подходом было бы либо убедиться, что дата введена из 4 цифр (это позволит избежать будущей ошибки2100 года), или используйте для этого какую-то функцию, чтобы - если нужно - ваше будущее, вы могли легко найти деликатные места в вашем коде.