如何在cpp中编写python sys.stdout.write

时间:2012-01-27 05:16:08

标签: c++ python opencv

我正在研究 opencv with c ++
我得到了用python (reference)写的代码的引用 我只是想知道如何在 c ++

中写这一行
sys.stdout.write( frame.tostring() )

如果需要,请指定标题


帮助

我将python代码转换为c ++ BUT
但它突然出现了一个错误的说法 我正在使用 Opencv2.3

error: ‘struct _IplImage’ has no member named ‘tostring’

1 个答案:

答案 0 :(得分:2)

写入标准输出(这是sys.stdout .write在Python中的作用)通常通过std::cout流和<<运算符完成:

std::cout << frame.tostring();

包含<iostream>标题。 cout对象是std::ostream的后代,因此您可以使用文档说明可以使用ostream执行所有操作。


您也可以使用C风格的I / O. printfputs函数(在<cstdio>标题中)将字符串写入标准输出:

std::printf("%s", frame.tostring().c_str());
std::puts(frame.tostring().c_str()); // also writes '\n' afterward

这里我假设您的tostring函数返回std::string; C风格的函数只打印以空值终止的char指针,而不是string,所以我打电话给c_str。另一方面,<<运算符被重载以处理大多数常见的C ++类型,因此您可以在不调用额外函数的情况下打印它们。