odczyt z wektora

0

hej, pisze wlasnie program, ktory ma za zadanie odczytanie wspolrzednych z pliku tekstowego i zapisanie go w pamieci.
w pliku tekstowym interesuja nas linijki zaczynajace sie "*" i "P". Kazda gwiazdka okresla oddzielny obiekt (punkt, łamana, poligon), a linijki z literą P zawierają wspołrzędne dla punktów określonego obiektu.
stworzylem dwa wektory: jeden przechowuje liczbe za gwiazdka(okresla ona rodzaj obiektu - punkt-1, łamana-4, poligon-5) oraz ilość punktów, które dany obiekt posiada.
drugi wektor przechowuje punkty.

mam teraz problem z tym, aby wyswietlic moje dane.
powinienem wyswietlic wartosc z pierwszego wektora okreslajaca rodzaj obiektu (czyli 5, 4 albo 1), nastepnie sprawdzic ile punktow ma dany obiekt (czyli sprawdzic kolejny element w pierwszym wektorze) i wyswietlic odpowiednia ilosc punktow z drugiego wektora.

#include <iostream>
#include <fstream>
#include <string>
#include <list>
#include <cstdlib>
#include <vector>

using namespace std;

string x;
string y;


struct Point
{
    double x, y;
    Point(double double1, double double2)
        : x(double1)
        , y(double2)
    {
    }
};

vector<Point*> Punkty;
vector<Point*>::iterator it_tab = Punkty.begin();

vector<double> Coto;

int main()
{
    double a = 0;
    fstream plik;

    plik.open("ObiektyTerenowe.txt");
    string linia;

    if (plik.good() == true)
    {
        while (!plik.eof())
        {
            getline(plik, linia);
            if (linia[0] == '*')
            {
                string l = linia.substr(1, 1);
                Coto.push_back(atof(
                    l.c_str())); // chcialem tu uzyc funkcji stoi, ale kompilator wyrzucal mi blad
                while (plik.peek() != '*' && !plik.eof())
                {
                    getline(plik, linia);
                    if (linia[0] == 'P')
                    {
                        x = linia.substr(4, 13);
                        y = linia.substr(16, 13);
                        double wspx = atof(x.c_str());
                        double wspy = atof(y.c_str());
                        Punkty.push_back(new Point(wspx, wspy));
                        a++;
                    }
                }
                Coto.push_back(a);
                a = 0;
            }
        }
        plik.close();


        for (int i = 0; i < Coto.size(); i = i + 2) // wyswietlanie danych... ????
        {
            cout << Coto[i] << endl;
            for (int i = 0; i < Coto[i + 1]; i++)
            {
                cout < < < < endl;
            }
        }
    }
    Punkty.clear();
    Coto.clear();
    return 0;
}
0

wtedy kontener mialbym intów, ale mniejsza o to. bardziej chcialbym uzyskac odpowiedz jak wyjac wspolrzedna x i wspolrzedna y z wektora struktur Point :)

0
cout << Punkty[nr_indeksu]->x; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1