Programa ha dejado de funcionar
Publicado por Miguel Andres (5 intervenciones) el 25/04/2020 09:11:40
Hola mi problema es el siguiente tengo un programa en c++ que lee un archivo con unas coordenadas y las muestra en consola usando diferentes clases, el problema es que al momento de leer el archivo y hacer un vector de objetos e invocar el metodo mostrar, no muestra nada o si lo invocas individualmente dice que ha dejado de funcionar, gracias de antemano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "iostream"
#include <math.h>
#include <vector>
#include <fstream>
#include <string>
#define PI 3.141592653589793
using namespace std;
class Coordenadas{
double x;
double y;
public: Coordenadas(){};
public:
Coordenadas(double x, double y, int type){
if(type==2){
Coordenadas::x = x*cos((y*PI)/180);
Coordenadas::y = y*sin((y*PI)/180);
}else if(type==1){
Coordenadas::x = x;
Coordenadas::y = y;
}
}
getX(){
return Coordenadas::x;
}
getY(){
return Coordenadas::y;
}
};
class Posicion{
string id;
Coordenadas c;
int hh;
int mm;
public: Posicion(){};
public:
Posicion(string id, Coordenadas c, int hh, int mm){
Posicion::id = id;
Posicion::c = c;
Posicion::hh = hh;
Posicion::mm = mm;
}
string getId(){
return Posicion::id;
}
Coordenadas getC(){
return Posicion::c;
}
int getHh(){
return Posicion::hh;
}
int getMm(){
return Posicion::mm;
}
void show(){
cout<<Posicion::id<<" "<<Posicion::c.getX()<<" "<<Posicion::c.getY()<<" "<<Posicion::hh<<" "<<Posicion::mm<<"\n";
}
};
class Tramo{
string id;
double distancia;
double velocidad;
public:
Tramo(string id, double distancia, double velocidad){
Tramo::id = id;
Tramo::distancia = distancia;
Tramo::velocidad = velocidad;
}
void mostrar(){
cout<<Tramo::id<<" "<<Tramo::distancia<<" "<<Tramo::velocidad;
}
};
class Apoyo{
public:
static void leerArchivo(vector <Posicion> array){
ifstream fe("DatosPuntos.txt");
string cadena;
//DEFINIENDO VARIABLES PARA EL ARRAY
string id;
int type;
double x;
double y;
int hh;
int mm;
vector<string> text;
while (!fe.eof()) {
fe >> cadena;
text.push_back(cadena);
}
fe.close();
for (int i = 0; i < text.size(); i+=6)
{
id = text[i];
type = stoi(text[i+1]);
x = stod(text[i+2]);
y = stod(text[i+3]);
hh = stoi(text[i+4]);
mm = stoi(text[i+5]);
Coordenadas c(type,x,y);
Posicion p(id,c,hh,mm);
array.push_back(p);
}
}
static void mostrar(vector <Posicion> array){
for (int i = 0; i < array.size(); ++i)
{
array[i].show();
}
}
};
int main(){
vector <Posicion> array;
Apoyo::leerArchivo(array);
//aqui no muestra nada
Apoyo::mostrar(array);
//aqui ocurre el error
array[0].show();
return 0;
}
Valora esta pregunta


0