C++ iostream、iomanip 头文件详解

C++ iostream、iomanip 头文件详解


首先,我们来看看iostream。
相信大家都知道iostream,这个库可以说是最常用的几个库之一了。iostream库提供了输入输出流。比如cin、cout,都是在iostream里的。所以,我们经常会用到iostream这个库。

iostream这个名字很好理解,InputOutputStream,输入输出流。

我们先看看iostream的代码:

#include <bits/c++config.h>
#include <ostream>
#include <istream>

// 由于代码过长,不再继续 

可以看出,iostream自己又引用了istream和ostream这两个头文件。这两个头文件的名字也很好理解,input stream和output stream。

我们再来分别看看istream和ostream里面又引用了什么:

istream:

#include <ios>
#include <ostream>

ostream:

#include <ios>
#include <bits/ostream_insert.h>

这两个头文件都引用了ios,我们继续看看ios的代码:

#include <iosfwd>
#include <exception>    
#include <streambuf>

好了,就到这里吧!其实iostream还引用了很多头文件的,我们不必深究。只知道它引用了istream、ostream和ios就行了。


iostream库定义了以下三个标准流对象:

cin表示标准输入(standard input)的istream类对象。cin可以从设备读入数据。

cout表示标准输出(standard output)的ostream类对象。cout可以向设备输出或者写数据。

cerr表示标准错误(standard error)的ostream类对象。cerr是导出程序错误消息的地方,它只能允许向屏幕设备写数据。

其中,cin和cout是比较常用的。cerr相对比较少用。

这些标准的流对象都有默认的所对应的设备,见下表:

C++对象名设备名称C中标准设备名默认含义
cin 键盘 stdin 标准输入
cout 显示器屏幕 stdout 标准输出
cerr 显示器屏幕 stderr 标准错误输出

好了,对于iostream,我们就讲到这里。接下来我们将介绍iomanip。

iomanip提供了一些格式化输入输出流的函数。io代表输入输出,manip是manipulator(操纵器)的缩写。

iomanip中比较常用的函数有以下几个:

setw(int n); 预设输出宽度

setfill(Char c); 使用c作为填充字符

setbase(int n); 预设整数输出进制

setprecision(int n) 用于控制输出流浮点数的精度,整数n代表显示的浮点数数字的精度(使用四舍五入)。

讲了那么多,还是来个示例吧:

#include <iostream>   // 标准输入输出流
#include <iomanip>    // 格式控制
using namespace std;
int main()
{
    double n;
    
    cin >> n;
    // 假设输入:123.45
    
    cout << n << endl;
    // 输出: 123.45 
    
    cout << setprecision(1) << n <<endl     // 控制精度为1,四舍五入后输出 123.5

         << setprecision(2) << n <<endl;   // 控制精度为2,四舍五入后输出 123.45
    
    cout << setfill('*') << setw(7) << n << endl;  // 位宽为7,由于n只有6位,所以左边补充一个*,输出    *123.45

    
    return 0;
}

 

posted on 2024-09-09 10:51  癫狂编程  阅读(69)  评论(0编辑  收藏  举报

导航

好的代码像粥一样,都是用时间熬出来的