📜  带有示例的C++中的iomanip setbase()函数(1)

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

带有示例的C++中的iomanip setbase()函数

在C++中,头文件iomanip提供了一系列用于格式化输出的工具。其中setbase()函数用于设置将要被输出的数字的基数(进制)。

语法

setbase()函数的语法如下:

setbase(int base);

其中,base参数表示要设置的进制,只能是8、10或16。

示例

下面,我们来看一些setbase()函数的示例。

示例1:将十进制数转化为其他进制
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int num = 255;
    cout << "十六进制输出: " << setbase(16) << num << endl;
    cout << "八进制输出: " << setbase(8) << num << endl;
    return 0;
}

这段代码将输出:

十六进制输出: ff
八进制输出: 377

通过setbase()函数,我们可以轻松地将十进制数转化为十六进制数或八进制数。

示例2:输出带有前缀的数字

有时,我们需要输出一个带有前缀的数字,比如0x1234表示十六进制的1234。这时,我们可以使用setbase()函数来设置进制并输出对应的前缀。

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

int main() {
    int num = 4660;
    cout << "十进制输出: " << num << endl;
    cout << "十六进制输出: " << setbase(16) << "0x" << setw(4) << setfill('0') << num << endl;
    cout << "八进制输出: " << setbase(8) << "0" << setw(6) << setfill('0') << num << endl;
    return 0;
}

这段代码将输出:

十进制输出: 4660
十六进制输出: 0x1234
八进制输出: 00002234

其中,setw()函数用于设置输出宽度,setfill()函数用于设置空位的填充字符。

注意事项
  • setbase()函数只能改变接下来将要输出的数字的进制,对之前已经输出的数字无影响。
  • 如果设置进制不是8、10或16,将会引发undefined behavior(未定义行为)。

以上就是setbase()函数的介绍和示例。