Dev - C++ - No entiendo porque no me permite ingresar getline

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No entiendo porque no me permite ingresar getline

Publicado por Kevin Nicolas (4 intervenciones) el 18/12/2019 00:20:31
Hola, tengo que hacer un programa con lo que me piden aqui

Screenshot-at-Dec-17-20-18-03


Aca les dejo mi codigo el tema esta en que no puedo ingresar la variable char dest mas de una vez pero si la variable ori

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
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
string destino[3],origen[3];
 
void bitac(int dist[3],int pas[3],char dest[50],char ori[50])
{
    for(int i=0;i<3;i++)
    {
        cout<<"\n\n\tBITACORA\n\n";
        cout<<"Ingresar el lugar de destino del viajero "<<i+1<<"\n";
        cin.getline(dest,51);
        destino[i] = dest;
 
        cout<<"Ingresar el lugar de origen del viajero "<<i+1<<"\n";
        cin.getline(ori,51);
        origen[i] = ori;
 
        cout<<"Ingrese la distancia recorrida del viajero "<<i+1<<"\n";
        cin>>dist[i];
 
        cout<<"Ingrese el numero de pasajeros del viajero "<<i+1<<"\n";
        cin>>pas[i];
 
    }
}
 
void cant(char ori[50],char dest[50])
{
    int cont=0;
    string aux;
    cout<<"Ingrese un lugar de origen a comparar \n";
    cin.getline(ori,51);
    aux = ori;
 
    for(int i=0;i<3;i++){
 
        if(aux == origen[i])
        {
            cont++;
        }
    }
 
    cout<<"La cantidad de viajes reaizados desde este lugar son "<<cont<<"\n";
}
 
void suma(char ori[50],char dest[50],int dist[])
{
    int suma=0;
    string aux;
    cout<<"Ingrese un lugar de origen para ver la distancia total recorrida desde ese lugar \n";
    cin.getline(ori,51);
    aux = ori;
 
    for(int i=0;i<3;i++){
 
        if(aux == origen[i])
        {
            suma = dist[i];
        }
    }
 
    cout<<"La suma de las distancias de los viajes realizados desde este lugar son "<<suma<<"\n";
}
 
void imprim(int dist[],int pas[])
{
    for(int i=0;i<3;i++)
    {
        cout<<"\n\n Los datos del viaje "<<i+1<<" son: \n";
 
        cout<<"\n El destino del viaje "<<i+1<<" es: "<<destino[i]<<"\n";
        cout<<"\n El origen del viaje "<<i+1<<" es: "<<origen[i]<<"\n";
        cout<<"\n La distancia recorrida del viaje "<<i+1<<" es: "<<dist[i]<<"\n";
        cout<<"\n El numero de pasajeros del viaje "<<i+1<<" es: "<<pas[i]<<"\n";
    }
}
 
int main()
{
    int dist[3], pas[3];
    char ori[50], dest[50];
 
    bitac(dist,pas,dest,ori);
    cant(ori,dest);
    suma(ori,dest,dist);
    imprim(dist,pas);
 
    return 0;
}

gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No entiendo porque no me permite ingresar getline

Publicado por Kevin Nicolas (4 intervenciones) el 18/12/2019 19:01:48
Al final lo arregle poniendo un cin.ignore() arriba del primer getline de la iteración
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar