我想输入三角形的顶点并找到三角形的面积。我阅读了顶点并尝试打印它。但它显示错误。你能帮我吗我尝试了以下方法

#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/

10-16 05:16