2016-04-17 5 views
0

Я хочу ввести вершины треугольника и найти область треугольника. Я прочитал вершины и попытался ее распечатать. Но он показывает ошибку. Можете ли вы мне помочь 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; 
    } 
} 
+1

Можете ли вы показать нам ошибку? – Stefan

+0

ошибка находится в cout << p line.wat не так с этим – user3217708

+1

Нет; показать ошибку. Что он говорит? – Stefan

ответ

2

Добавьте это в ваш код:

std::ostream& operator << (std::ostream& oss, const vertex& v) { 
    return oss << '(' << v.x << ',' << v.y << ')'; 
} 

Это, скорее всего, жалуются, потому что он не знает, как отобразить-структуру, которую вы пытаетесь Распечатать.


Даже если вы храните его как {x, y}, результатом является то, что p по-прежнему является объектом. C++ просто дает вам возможность создавать объекты с использованием синтаксиса list initialization. Фактически отображать этот объект - совсем другая проблема, потому что все, что он видит, - это какой-то объект, для которого оператор << не определен для обработки, поэтому он бросает виртуальные руки вверх в воздух и выплевывает сообщение об ошибке.

Но поскольку мы только что создали определение этого оператора, который обрабатывает указанный объект, который оказался трудным, теперь он знает, что делать, когда видит объект вершин.

Надеюсь, что поможет

+0

Я не понял код.i'm a beginner.cout << vx << vy достаточно? Я просто хочу напечатать как (x, y) – user3217708

+0

@ user3217708, справедливо, я просто подумал, так как вы использовали 'cout << p' Я мог бы также дать ответ, который не помешает этой вершине – smac89

+0

p = {x, y}; // cout << p; почему это не работает? p - вершина с координатами x и y и хранится как {x, y} – user3217708

Смежные вопросы