我想输入三角形的顶点并找到三角形的区域。我读了顶点并试图打印它。但它显示错误。你能救我吗。我试过以下
#include <iostream>
#include <math.h>
using namespace std;
struct vertex {
float x;
float y;
};
struct triangle {
vertex vertices[3];
};
int main()
{
triangle t;
for (int i = 0; i < 3; ++i) {
double x, y;
cin >> x >> y;
vertex p = { x, y };
cout << p;
t.vertices[i] = p;
// cout<<t.x;
}
}
答案 0 :(得分:2)
将此添加到您的代码中:
std::ostream& operator << (std::ostream& oss, const vertex& v) {
return oss << '(' << v.x << ',' << v.y << ')';
}
它很可能是抱怨,因为它不知道如何显示您尝试打印的结构。
即使您将其存储为{x, y}
,结果仍然是p
仍然是对象。 C ++只是为您提供了使用list initialization语法创建对象的能力。实际上显示这个对象是一个完全不同的问题,因为它看到的只是<<
运算符未被定义处理的某个对象,所以它将它的虚拟举手抛向空中并吐出错误信息。 / p>
但是因为我们刚刚创建了一个处理所述对象的运算符的定义,这个对象很难实现,它现在知道在看到顶点对象时该怎么做。
希望有所帮助