相关疑难解决方法(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++ iostream的自定义操纵器

我想为ostream实现一个自定义操纵器,对插入到流中的下一个项目进行一些操作.例如,假设我有一个自定义操纵器引用:

std::ostringstream os;
std::string name("Joe");
os << "SELECT * FROM customers WHERE name = " << quote << name;  
Run Code Online (Sandbox Code Playgroud)

操纵者引用将引用名称以产生:

SELECT * FROM customers WHERE name = 'Joe'
Run Code Online (Sandbox Code Playgroud)

我该如何完成呢?谢谢.

c++ string iostream

11
推荐指数
3
解决办法
9967
查看次数

如何格式化c ++中的标志?

我知道在c ++中我们可以使用像ios :: showbase这样的状态标志来格式化输出/输入...我知道我们可以将basefield的标志设置为hex,oct,dec但是有bin吗?以及如何格式化二进制basefield中的整数?

c++

2
推荐指数
1
解决办法
1133
查看次数

标签 统计

c++ ×3

iostream ×1

stream ×1

string ×1