📜  C++中的操纵器及示例(1)

📅  最后修改于: 2023-12-03 15:14:03.621000             🧑  作者: Mango

C++中的操纵器及示例

在C++中,操纵器是一种能够在输出流中插入特殊作用的符号或函数,通过使用操纵器,我们可以控制输出流中输出的数据格式,从而实现更加灵活、方便的输出操作。下面就让我们来看看C++中操纵器的基本使用方法以及一些常用的示例。

操纵器的基本使用方法

C++中的操纵器主要由头文件<iomanip>提供支持,在使用操纵器前需要先通过#include <iomanip>引入必要的头文件。在输出流中使用操纵器主要有两种方式:

1. 在插入运算符(<<)后紧跟操纵器名称

示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int num = 123;
    cout << "num = " << setw(10) << setfill('*') << num << endl;
    return 0;
}

输出结果:

num = *******123

在上面的代码中,我们使用了两个操纵器:setwsetfill。其中,setw用于设置输出宽度,setfill用于设置填充字符。通过在插入运算符(<<)后紧跟操纵器名称,并设置其参数,就可以在输出流中插入操纵器。

2. 通过调用操纵器函数

示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int num = 123;
    cout << "num = ";
    cout.width(10);
    cout.fill('*');
    cout << num << endl;
    return 0;
}

输出结果:

num = *******123

在上面的代码中,我们通过调用cout的操纵器函数widthfill来实现设置输出宽度和填充字符的目的。这种方式可以更灵活地使用操纵器。

常用的操纵器示例

下面列举一些常用的操纵器示例,供参考:

1. 控制输出精度

示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    double num = 3.14159265358979323846;
    cout << "num = " << fixed << setprecision(3) << num << endl;
    return 0;
}

输出结果:

num = 3.142

在上面的代码中,我们使用了fixed操纵器来设置输出小数点后的位数为固定的数(此处为3),并使用setprecision操纵器来设置小数点后的位数。

2. 控制科学计数法输出

示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    double num = 123456789;
    cout << "num = " << scientific << setprecision(3) << num << endl;
    return 0;
}

输出结果:

num = 1.235e+08

在上面的代码中,我们使用了scientific操纵器来设置输出为科学计数法格式,并使用setprecision操纵器来设置输出数字的位数。

3. 控制输出进制

示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int num = 255;
    cout << "num = " << hex << num << endl; //输出16进制数
    cout << "num = " << dec << num << endl; //输出10进制数
    cout << "num = " << oct << num << endl; //输出8进制数
    return 0;
}

输出结果:

num = ff
num = 255
num = 377

在上面的代码中,我们使用了hexdecoct三个操纵器来控制输出的进制。其中,hex用于输出16进制数,oct用于输出8进制数,dec用于输出10进制数。

4. 控制对齐方式

示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int num = 123;
    cout << setw(10) << left << num << endl; //左对齐
    cout << setw(10) << right << num << endl; //右对齐
    cout << setw(10) << internal << num << endl; //内部对齐
    return 0;
}

输出结果:

123       
       123
       123

在上面的代码中,我们使用了leftrightinternal三个操纵器来控制输出对齐方式。其中,left用于左对齐,right用于右对齐,internal用于内部对齐(数字靠右,填充符靠左)。

总结

通过使用C++中的操纵器,我们可以灵活地控制输出流中的数据格式,从而实现更加方便、清晰的输出操作。需要注意的是,操纵器需要通过头文件<iomanip>引入才能使用,并且操纵器的作用范围是从引入语句开始到文件末尾。