如何在c++中通过一个cout语句计算中间零和前导零
How to cout middle zero with leading zero via one cout statement in C++?
我需要显示从包二进制数据(0x123400005678)解析的三个值。
unsigned int k = 0x1234, l=0x0, m=0x5678;
当我使用cout三次时,我可以显示四位十六进制值。
#include <iostream>
#include <iomanip>
...
cout << "seperated cout" << endl;
cout << hex << setfill ('0') << setw (4) << k;
cout << hex << setfill ('0') << setw (4) << l;
cout << hex << setfill ('0') << setw (4) << m << endl;
....
seperated cout
123400005678
但是当我只使用一个计数行时,省略了'0x0'的前导零…
#include <iostream>
#include <iomanip>
...
cout << "oneline cout" << endl;
cout << hex << setfill ('0') << setw (4) << k << l << m << endl;
...
oneline cout
123405678
是否有任何方式显示像'123400005678'与一行计数?或者使用三次count是唯一的方法吗?
提前感谢。
字段宽度不是"sticky",所以您需要为打印出的每个字段重新设置:
cout << hex << setfill ('0') << setw (4) << k << setw(4) << l << setw(4) << m << endl;
结果:123400005678
填充字符是粘性的,所以你通常想在你使用任何其他值设置完成后立即将其设置为空格字符:
cout << setfill(' ');
相关文章:
- 在 COUT 语句中使用 COUT 调用函数
- C++程序在一定行后未正确编译[cout语句]
- 这种递归是如何到达 COUT 语句的?
- 0x%08lx 格式说明符在 printf 语句到 cout
- 我收到一个断言错误,但是当我编写 cout 语句时,它会消失
- 一个语句中没有多个 cout 的错误/警告
- 为什么 cout 语句在传递指向函数的指针时没有执行?
- 两个 cin / cout 语句合并为一个
- 在 cout 语句中首先运行什么?(C++17)
- if 语句仅在前面有调试 cout 行(C 中的多线程)时才通过
- 使用自定义宏来简化 cin 和 cout 语句等内容被认为是更好还是更差
- 单个cout中的多个语句产生不同的结果
- 尽管我的功能和cout语句的放置错误,但我的程序为什么会起作用
- 如何在COUT语句中使用移动运算符
- 如果语句在第一次尝试后没有给出 cout
- C :Bool方法在COUT语句之后返回意外数字
- cout 输出乱码消息行,而不是实际用户的 cout 语句
- 添加 cout 语句会更正输出
- 如何仅使用循环/控制语句和两个cout语句创建一个倒三角:一个输出“#”和一个输出' n'
- 为什么语句"cout << '\\\\';"没有失败?