C++ ios::Showbase() 函数



C++ 的std::ios::showbase()函数是一个流操纵器,它能够在输出整数值时显示数值基数前缀。启用此函数后,它确保十六进制数以 0x 为前缀,八进制数以 0 为前缀,而十进制数不受影响。

语法

以下是 std::ios::showbase() 函数的语法。

ios_base& showbase( std::ios_base& str );

参数

  • str − 它表示受格式标志影响的流对象。

返回值

此函数返回参数 str。

异常

如果抛出异常,str 处于有效状态。

数据竞争

它修改 str。同时访问同一个流对象可能会导致数据竞争。

示例

让我们来看下面的例子,我们将使用带十进制的 showbase() 函数。

#include <iostream>
#include <iomanip>
int main()
{
    int x = 112;
    std::cout << "Decimal default : " << x << std::endl;
    std::cout << std::showbase;
    std::cout << "Decimal With showbase : " << x << std::endl;
    return 0;
}

输出

上述代码的输出如下:

Decimal default : 112
Decimal With showbase : 112

示例

考虑下面的例子,我们将使用带十六进制的 showbase() 函数。

#include <iostream>
#include <iomanip>
int main()
{
    int x = 234;
    std::cout << std::hex;
    std::cout << "Hexadecimal default : " << x << std::endl;
    std::cout << std::showbase;
    std::cout << "Hexadecimal With showbase : " << x << std::endl;
    return 0;
}

输出

以下是上述代码的输出:

Hexadecimal default : ea
Hexadecimal With showbase : 0xea

示例

在下面的例子中,我们将使用带八进制的 showbase() 函数。

#include <iostream>
#include <iomanip>
int main()
{
    int x = 1123;
    std::cout << std::oct;
    std::cout << "Octal default : " << x << std::endl;
    std::cout << std::showbase;
    std::cout << "Octal With showbase : " << x << std::endl;
    return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

Octal default : 2143
Octal With showbase : 02143
ios.htm
广告