Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: pedro0620 en 15 Septiembre 2016, 02:54 am



Título: Ayuda con las Funciones de fstream en C++
Publicado por: pedro0620 en 15 Septiembre 2016, 02:54 am
Hola!
Estoy realizando un menú con manejo de archivos para pedir datos de un empleado...
Con las funciones ifstream y ofstream!

Todo va muy bien en el programa pero eh detectado que a la hora de ingresar el nombre por ejemplo, si ingreso:

Brian Alberto

Al momento de mostrar en pantalla los datos y ver la informacion en el archivo, solo me muestra el Brian y al parecer solo lee los caracteres antes del espacio...

Alguien que me diga si se puede solucionar esto por favor!


Título: Re: Ayuda con las Funciones de fstream en C++
Publicado por: crack81 en 15 Septiembre 2016, 03:17 am
Prueba la funcion getline() que lee la linea completa hasta que presionas enter
Código
  1. int main()
  2. {
  3.    string nombre="";
  4.    cout<<"Ingrese un nombre completo "<<endl;
  5.    getline(cin,nombre);
  6.  
  7.    cout<<"\nEl nombre es: "<<nombre<<endl;
  8.  
  9.    return 0;
  10. }
  11.  


Título: Re: Ayuda con las Funciones de fstream en C++
Publicado por: pedro0620 en 15 Septiembre 2016, 03:29 am
Ya lo intente asi con string y sigue igual..
Mis variables las tengo en tipo char no se si eso tenga algo que ver.

 


Título: Re: Ayuda con las Funciones de fstream en C++
Publicado por: crack81 en 15 Septiembre 2016, 05:54 am
Prueba y me dices.

Código
  1. #include <iostream>
  2. #include<fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    string nombre="";
  9.    char sexo;
  10.  
  11.  
  12.    cout<<"Ingrese el nombre"<<endl;
  13.    getline(cin,nombre);
  14.  
  15.    cout<<"Ingrese sexo"<<endl;
  16.    cin>>sexo;
  17.  
  18.  
  19.  
  20.    ofstream file("salida.txt");
  21.    file<<"Nombre: "<<nombre<<endl;
  22.    file<<"Sexo: "<<sexo<<endl;
  23.    file.close();
  24.  
  25.    cout<<"Archivo escrito"<<endl;
  26.  
  27.    return 0;
  28. }
  29.