相关疑难解决方法(0)

C++自定义流操纵器,用于更改流上的下一个项目

在C++中,要以十六进制打印数字,请执行以下操作:

int num = 10;
std::cout << std::hex << num; // => 'a'
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建一个只需要向流添加内容的操纵器:

std::ostream& windows_feed(std::ostream& out)
{
    out << "\r\n";
    return out;
}

std::cout << "Hello" << windows_feed; // => "Hello\r\n"
Run Code Online (Sandbox Code Playgroud)

但是,如何创建一个像"十六进制"一样修改项目中的项目的操纵器?举个简单的例子,我如何在这里创建plusone操纵器?:

int num2 = 1;
std::cout << "1 + 1 = " << plusone << num2; // => "1 + 1 = 2"

// note that the value stored in num2 does not change, just its display above.
std::cout << num2; // => "1"
Run Code Online (Sandbox Code Playgroud)

c++ stream

57
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

stream ×1