检索cout,传递到str
Retrieve cout, pass into str
在ARuco中,标记是一个自定义类。
使用行:cout<<Markers[0];
其中标记为vector<Marker>
可以输出以下示例:185=(61.277,163.281) (186.9,174.062) (182.589,293.509) (55.8044,296.465) Txyz=-999999 -999999 -999999 Rxyz=-999999 -999999 -999999
我需要前4组数字,但由于它们不是通过markrname.attributename可访问的类属性。让它们输出的唯一方法是通过cout。其他一切都让我得到了地址,例如0xbf76ea14
因此,我可以看到两个可能的答案:1) 在cout之后检索行并将其转换为字符串的最简单方法2) 有什么办法能骗它把印刷品当成定制品,跳过一步吗?
您无法以编程方式检索已发送到cout
的内容。
您可以将项目输出到内存缓冲区:
#include <sstream>
#include <ostream>
#include <string>
// ...
std::ostringstream oss;
oss << Markers[0];
std::string the_output = oss.str();
// you write some code to parse out the info you want from this string
从Aruco源代码中,您可以看到它正在使用的流插入运算符:
for (int i=0;i<4;i++)
str<<"("<<M[i].x<< ","<<M[i].y<<") ";
假设Markers的类型为aruno::Marker
,那么您应该能够仅使用Markers[0].x
来获得第一个点的x值。
如果Markers的类型为std::vector<aruno::Marker>
,则可以使用Markers[0][0].x
访问它。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- std::cout.imbue()多重调用
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- Python str to C++ to Python str
- 在作为静态成员包含在另一个类中的类的构造函数中使用 cout
- 在 COUT 语句中使用 COUT 调用函数
- GCC 4.8.2 自动矢量化由于 cout 而失败
- std::cout输出int时出现编译错误
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- 在这种情况下显式调用时,std::cout 如何更改析构函数的行为?
- C++ Setter/Getter,cout 工作,printf 失败
- 字符串变量,比如说"字符串str",可以直接复制到数组中吗?
- C++ cout 将双精度对齐到精度 2 并正确对齐
- 结构元素名称要 cout?
- 使用模板类重载 cout
- 犰狳的 print() 方法和 cout 在从 Rcpp 调用时顺序不一致
- 带有 cout 的指针在C++
- 检索cout,传递到str