您的位置:首页 > 编程语言 > C语言/C++

C++基础之格式化输出

2017-09-29 16:44 274 查看
在C语言里面,使用printf()函数格式化输出。例如printf(“%d-%f-%2.5f”,a,b,c);

但是在C++里面就尴尬了,cout << a << b << c << endl;输出的都是默认格式,这些往往不是我们需要的格式。

在C++里面也提供了格式化输出的方法,但是方法比C语言稍微麻烦。C++格式化输出需要引入头文件:#include ,里面提供的方法基本功能与printf()一样,如下两者的对比:

序号内容C++C语言
1十进制输出dec“%d”
2八进制输出otc“%o”
3十六进制输出hex“%x”
4填充字符setfill(‘0’)“0%d”
6设置小数点显示setprecision(n)“0%.2f”
7设置区域宽度setw(5)“0%5”
8固定的浮点显示setioflags(ios::fixed)
9指数表示setioflags(ios::scientific)
10左对齐setiosflags(ios::left)%”-2f”
11右对齐setiosflags(ios::right)%”2f”
12忽略前导空白setiosflags(ios::skipws
1316进制数大写输出setiosflags(ios::uppercase)“%x”
1416进制小写输出setiosflags(ios::lowercase)“%X”
15强制显示小数点setiosflags(ios::showpoint)
16强制显示符号setiosflags(ios::showpos)
下面看个简单的例子:模拟一个秒表,格式:HH:mm:ss

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int hour = 0;
int min  = 0;
int sec  = 0;

for(int i=0; i<10000; i++)
{
cout << "\t" <<setfill('0') <<setw (2) << hour  <<":" << setw (2) << min  <<":" << setw (2) << sec << endl;
sec++;
if(sec > 59){
min++;
sec=0;
}
if(min>59){
hour++;
min=0;
}
sleep(1);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言