我想cout输出一个带前导零的int,因此值1将打印为001,值25打印为025.我怎样才能做到这一点?
在这里阅读了很多关于C++ C++风格的答案后,我还有一个小问题.我是否可以将C风格的铸件用于内置类型,long x=(long)y;或者它仍然被认为是坏的和危险的?
我正在编写以下代码:
#include<iostream>
#include<stdio.h>
using namespace std;
main() {
unsigned char a;
a=1;
printf("%d", a);
cout<<a;
}
Run Code Online (Sandbox Code Playgroud)
它打印1和一些垃圾.
为什么cout表现如此?
我想控制我ostream输出的chars和unsigned char's via是否<<将它们写成字符或整数.我在标准库中找不到这样的选项.现在我已经恢复了在一组替代打印功能上使用多个重载
ostream& show(ostream& os, char s) { return os << static_cast<int>(s); }
ostream& show(ostream& os, unsigned char s) { return os << static_cast<int>(s); }
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?