c++ - 您可以使用 setfill() 设置填充 2 位数字吗?
问题描述
说如果我想在输入为18时显示2018,我怎样才能让它在2018中显示“20”?我尝试使用 setfill("20") 并且它不起作用,因为它是一个字符串而不是一个字符。但是当我使用 setfill('2'); 它将显示 2218。
解决方案
格式化工具setfill()
旨在通过重复一个字符来填充空白空间。因此,使用字符串是不可能获得这种效果的。
对于时间格式,您可以使用put_time()
格式字符串来指示所需的格式(例如Y
for2018
和y
for ),前提是您在结构 18
中传递了一个真实日期(例如 2018 年) 。tm
在您的情况下,您可以尝试以下操作:
cout << (year<100 ? year:year+2000);
但更好的方法是确保日期以 4 位数字输入(这将避免您未来 2100 年的错误),或者使用一些功能来做到这一点,这样——如果需要的话——你的未来可以很容易地找到代码中的微妙位置。
推荐阅读
- java - 引起:org.codehaus.groovy.control.MultipleCompilationErrorsException
- android - 检查在中国是否可以访问互联网
- opengl - OpenGL混合 - 用不同的颜色填充交叉点
- kubernetes - ebs.csi.aws.com 与 kubernetes.io/aws-ebs 的供应商有何区别?
- java - java 8中的雪花时间戳转换
- google-apps-script - 如何通过引用 URL 编写函数来计算其他电子表格中的工作表数量
- sql - 根据两列重复值找出唯一的顶部记录
- regex - 正则表达式从 X 到 Y 但不包括另一个 X
- arrays - 如何在数据库中保存 JSON - laravel 8
- c# - 通过 C# Web 窗体对 Windows 用户进行身份验证