如何在C++中实现python的sys.stdout.write
我正在用c++编写opencv
我找到了一个用python写的代码参考,链接在这里 (参考)
我只是想知道如何把这一行代码用c++写出来
sys.stdout.write( frame.tostring() )
如果需要,请指定头文件
求助
我把python代码转换成了c++ 但是
它给我弹出了一个错误提示
我使用的是Opencv2.3
error: ‘struct _IplImage’ has no member named ‘tostring’
1 个回答
2
在Python中,写入标准输出(也就是用sys.stdout
.write
这个方法)通常是通过std::cout
流和<<
操作符来实现的:
std::cout << frame.tostring();
首先,你需要包含<iostream>
这个头文件。cout
对象是std::ostream
的一个子类,所以你可以用它做文档里说的所有事情,就像用ostream
一样。
你也可以使用C风格的输入输出。printf
和puts
这两个函数(在<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++类型,所以你可以直接打印它们,而不需要调用额外的函数。