我想编写一个函数,将某些内容输出到ostream
传入的 a 中,然后返回流,如下所示:
std::ostream& MyPrint(int val, std::ostream* out) {
*out << val;
return *out;
}
int main(int argc, char** argv){
std::cout << "Value: " << MyPrint(12, &std::cout) << std::endl;
return 0;
}
像这样打印值并将函数调用嵌入输出运算符链中会很方便,就像我在main()
.
但是,它不起作用,并打印:
$ ./a.out
12Value: 0x6013a8
所需的输出将是这样的:
Value: 12
我怎样才能解决这个问题?我必须定义一个operator<<
代替吗?
更新:澄清了所需的输出。
UPDATE2:有些人不明白为什么我会打印这样的数字,使用函数而不是直接打印。这是一个简化的示例,实际上该函数打印一个复杂对象而不是int
.