Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2014, 21:17
UzumakiMarkoz
 
Fecha de Ingreso: noviembre-2014
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Ingresar string con espacios

Buenas, me preguntaba si me podrían ayudar con un problema que he tratado de solucionar y si podrían darme consejos para el siguiente código.

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

[HIGHLIGHT="C++"]
Código C++:
Ver original
  1. int main()
  2. {
  3.     //Ced: Cédula, Nom: Nombre, Ape: Apellido, Dir: Dirección, Tel: Teléfono, Op: Opción,
  4.     string Nom,Ape,Tel,Dir,Op;
  5.     char Ced[9];
  6.    
  7.     system("cls");//limpiamos pantalla
  8.     cout << "Bienvenido a nuestro sistema de matricula\n\n";
  9.     system("pause");
  10.     system("cls");
  11.    
  12.     do//hacer siempre que se cumpla el while
  13.     {
  14.         cout << "********* Menu de Inicio ********* \n\n0: Salir" <<endl;
  15.         cout << "1: Matricular\n\nElige una opcion: ";
  16.         cin >> Op;
  17.         system("cls");
  18.    
  19.         if(Op == "0")
  20.         {
  21.             cout << "Fin del Sistema\n\n";
  22.             system("pause");//Pausa la pantalla
  23.             return 0;//Sale del Programa
  24.         }
  25.    
  26.         else if(Op == "1")
  27.         {
  28.             ofstream Est;//Declaración del fichero
  29.             Est.open("Estudiante.dat");//Abrimos el fichero Estudiante.dat
  30.  
  31.             if(Est.good())//Se puede trabajar en el archivo
  32.             {
  33.                 cout << "Nombre: ";
  34.                 cin >> Nom;
  35.                 cout << "\nApellido: ";
  36.                 cin >> Ape;
  37.                 cout << "\nCedula: ";
  38.                 cin >> Ced;
  39.                 cout << "\nTelefono: ";
  40.                 cin >> Tel;
  41.                 cout << "\nDireccion: ";
  42.                 getline(cin, Dir);//No lee el comando y se lo "salta"
  43.                 cout << "\nMatricula Exitosa!\n\n";
  44.                 system("pause");
  45.                 Est << "Estudiante X\n\n<< Nombre: " << Nom << "\nApellido: " << Ape <<endl;
  46.                 Est << "Cédula: " << Ced << "\nTeléfono: " << Tel << "\nDirección: " << Dir <<endl;
  47.                 system("cls");
  48.                 Est.close();
  49.             }
  50.  
  51.             else//El archivo está corrupto
  52.             {
  53.                 cout << "El archivo no se pudo crear o abrir";
  54.                 system("pause");
  55.             }
  56.         }
  57.     }
  58.     while(Op != "0");//Si la opción ingresada es diferente a 0, se repite el ciclo
  59. }//Fin del main

A la hora de ingresar la dirección no lee el comando getline() y pasa a la línea siguiente, lo cambie por el cin pero solo el cin >> no lee los espacios, intente tambien con cin.getline() pero no da resultado.

Algún consejo?