如何在 GNuploti-IOstream 中使用C++变量

how to use variables in C++ in the gnuplot-iostream

本文关键字:C++ 变量 GNuploti-IOstream      更新时间:2023-10-16

我正在使用 gnuplot-iostream 进行 c++,我的问题如下:

 gp << "set object 1 rect from 3,1 to 3.2,4 fc lt 1 n";

在上面的数字中,我们可以使用 c++ 中的一些变量来替换它们吗? 以及如何做到这一点?添加一个矩形很容易,但是当我想添加更多矩形时,这将非常棘手。我尝试了几种方法,但它不起作用。提前谢谢!

从未使用过 gnuplot-iostream,但也许一些香草C++会对你有所帮助,iostream 只是控制台的管道,所以你不能中断缓冲区但连接信息,你可以做这样的事情:

 gp << "set object " << 1 << " rect from "
 << 3,1 << " to " << 3.2 << "," << 4 << " fc lt 1 n";

但我想你不想那样做。

我会创建一个结构并重载 <<运算符以返回您需要的任何内容。

struct Rect {
  float from[2];
  float to[2];
}
std::ostream& operator<<(std::ostream& os, const Rect& obj)
{
    std::string formated = "from "
      + std::to_string(obj.from[0]) + ","
      + std::to_string(obj.from[1]) + " to "
      + std::to_string(obj.to[0])   + ","
      + std::to_string(obj.to[1]);
    os << formated;
    return os;
}

因此,您只需定义矩形并将它们传递给流

Rect r1 = {{2,41},{63,1.4}};
std::cout << r1; // "from 2,41 to 63,1.4"