我想输入三角形的顶点并找到三角形的面积。我阅读了顶点并尝试打印它。但它显示错误。你能帮我吗我尝试了以下方法
#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;
}
}
最佳答案
将此添加到您的代码:
std::ostream& operator << (std::ostream& oss, const vertex& v) {
return oss << '(' << v.x << ',' << v.y << ')';
}
这很可能是在抱怨,因为它不知道如何显示您要打印的结构。
即使将其存储为
{x, y}
,结果是p
仍然是对象。 C ++赋予您使用list initialization语法创建对象的能力。实际显示该对象是一个完全不同的问题,因为它看到的只是某个未定义<<
运算符处理的对象,因此它悬而未决地吐出了错误的信息。但是,因为我们刚刚创建了该运算符的定义,用于处理被证明很困难的所述对象,所以它现在知道看到顶点对象时该怎么做。
希望能有所帮助
关于c++ - 结构数组怎么了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36673253/