结构数组有什么问题?
what's wrong with array of structures?
我想输入三角形的顶点,求三角形的面积。我阅读了顶点并尝试打印它。但它显示错误。你能帮我吗out.I尝试了以下方法
#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 语法创建对象。实际显示这个对象完全是一个不同的问题,因为它所看到的只是一些未定义 <<
运算符处理的对象,所以它把它的虚拟手举到空中并吐出一条错误消息。
但是因为我们刚刚创建了一个操作符的定义来处理被证明是困难的所述对象,它现在知道当它看到一个顶点对象时该怎么做。
希望对您有所帮助
我想输入三角形的顶点,求三角形的面积。我阅读了顶点并尝试打印它。但它显示错误。你能帮我吗out.I尝试了以下方法
#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 语法创建对象。实际显示这个对象完全是一个不同的问题,因为它所看到的只是一些未定义 <<
运算符处理的对象,所以它把它的虚拟手举到空中并吐出一条错误消息。
但是因为我们刚刚创建了一个操作符的定义来处理被证明是困难的所述对象,它现在知道当它看到一个顶点对象时该怎么做。
希望对您有所帮助