c++ - 如何确保在 C++ 中只输出 6 位、0 填充的十六进制值?
问题描述
基本上,我试图在给定红色、绿色和蓝色的值的情况下生成十六进制值...我能够将所有内容转换为十六进制,但我希望结果是用 0 填充的 6 位十六进制数如果只有 4 个输出数字。
这是我所拥有的:”
int main() {
stringstream hexstring;
int red,green,blue;
cout << "Red: ";cin >> red;
cout << "Green: ";cin >> green;
cout << "Blue: ";cin >> blue;
hexstring << hex << setfill('0') << setw(6) << uppercase << red << green << blue;
cout << "#" << hexstring.str();
}
这是当我使用 0 表示红色、1 表示绿色和 43 表示蓝色时的输出:
Red: 0
Green: 1
Blue: 43
#00000012B
这增加了 6 个零,因为我的 setw 是 6。我可以将其设置为 2 个零以获得总共 6 位数字,但是如果我更改红色、绿色、蓝色的值,我还必须更改 setw 的值...
如何使其始终为 255 内的所有值输出 6 位数字?
解决方案
setw
仅影响下一个输出字段。
你可能想写的是:
hexstring << hex << setfill('0') << uppercase
<< setw(2) << red
<< setw(2) << green
<< setw(2) << blue;
推荐阅读
- jquery - 带有 Wordpress 的 jQuery 自动完成功能正在搜索每个帖子类型
- jenkins - 如何在子作业失败时在父作业中获取子作业日志?
- pdf - 如何在代码中编辑受密码保护(加密)的 PDF 文件
- java - Java Transformer 将汉字转换为 ASCII 值
- php - 从 laravel 中的空值创建默认对象但也工作得很好?
- r - 如何在数据框上执行功能
- python - Python Scrapy - 将抓取的数据从第一个 URL 传递到第二个 URL 并抓取数据
- android - Android Zoom 如何正常工作?
- python - 将条件应用于循环(熊猫)时出现值错误
- python - 如何将用户的输入放入列表中?