如何在C++中实现python的sys.stdout.write

1 投票
1 回答
1507 浏览
提问于 2025-04-17 11:12

我正在用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风格的输入输出。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++类型,所以你可以直接打印它们,而不需要调用额外的函数。

撰写回答