首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++格式化显示整形数字?解决办法

2012-02-09 
C++格式化显示整形数字?cout中类似C中的printf( %08d ,i)printf( %0*d ,10,i)printf( %8x ,i)这样的

C++格式化显示整形数字?
cout中类似C中的

printf( "%08d ",i)
printf( "%0*d ",10,i)
printf( "%8x ",i)
这样的格式化输出?   查了半天没有查到

setw只能对字符串有用.

[解决办法]
1.%08d输出8位10进制数i,不足8位前面补0;%8d是补空格。
2.输出10位10进制数i,不足10位前面补0。
3.输出8位16进制数i,不足8位前面补0。
[解决办法]
try:

sprintf
[解决办法]
谁说setw只对字符串有效了。对所有类型都有效。
不过,你得联用setfill等其它控制符。C++的控制符,每个只有一个功效。
有兴趣找 <标准C++输入输出流与本地化> 来看
[解决办法]
如果可以考虑标准库以外的选择的话,那么可以用boost::format:
format( "...%8d... ") % x; //还有其他用法包括{0}
功能是printf的超集。但是强类型的,比printf安全得多。如果能不用printf就不用,因为它是弱类型的。
相比cout,format更灵活,效率更高。
将来,随着C++09的推出,将会有类型安全的printf。相关的支持技术——可变模板,已经进入标准草案。

热点排行