Можете ли вы использовать setfill (), чтобы установить 2 цифры заполнения? - PullRequest
0 голосов
/ 09 октября 2018

Скажите, если я хочу отобразить 2018, когда ввод равен 18, как я могу заставить его отображать «20» в 2018?Я попытался использовать setfill ("20"), и он не будет работать, так как это строка, а не символ.Но когда я использовал setfill ('2');будет отображаться 2218.

1 Ответ

0 голосов
/ 09 октября 2018

Средство форматирования setfill() предназначено для заполнения пустого пространства путем повторения одного символа.Поэтому невозможно получить этот эффект, используя строку.

Для форматирования времени у вас будет возможность использовать put_time() со строкой форматирования для указания желаемого формата (например, Y для 2018 и y для18), если у вас есть реальная дата (например, 2018), переданная в структуре tm.

В вашем случае вы можете попробовать что-то вроде:

cout << (year<100 ? year:year+2000);   

Но лучшим подходом было бы либо убедиться, что дата введена из 4 цифр (это позволит избежать будущей ошибки2100 года), или используйте для этого какую-то функцию, чтобы - если нужно - ваше будущее, вы могли легко найти деликатные места в вашем коде.

...