[C con Clase] Duda sobre cin.getline

Jovanny fxy_95 en yahoo.com.mx
Lun Abr 4 05:17:15 CEST 2011


Hola, gracias por haber contestado...
quizás el ejemplo que puse con anterioridad era muy simple y cuando yo lo  usé ese si corrió también, ahora, pondré el código que llevo, que está incompleto, porque quiero implementarlo con ficheros:

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>

#define TAM 64

using std :: cout;
using std :: cin;
using std :: endl;
using std :: setw;
using std :: left;

class Libreria
{
    public:
            Libreria();
            void titulo() const
            {
                system("cls");
                cout << title << endl << endl;
            }

            void menu();
            void ejemploInfo()
            {
                system("cls");
                cout<<"Titulo: \t" << left << setw(30) << tituloEjemplo << endl;
                cout<<"Autor:  \t" << left << setw(30) << autorEjemplo << endl;
                cout<<"Editorial:  \t" << left << setw(30) << editorialEjemplo << endl;
            }

            void pedir();
    private:
            char title[TAM];
            char tituloSalvar[TAM];
            char tituloEjemplo[TAM];
            char autorEjemplo[TAM];
            char editorialEjemplo[TAM];
}objLibreria;

Libreria :: Libreria()
{
    strcpy(title, "Libreria IPN");
    strcpy(tituloEjemplo, "C++ Como programar");
    strcpy(autorEjemplo, "Deitel");
    strcpy(editorialEjemplo, "Prentice Hall");
    strcpy(tituloSalvar, "");
}

void Libreria :: menu()
{
    cout << "1.\tConsulta" << endl;
    cout << "2.\tIngresar titulo" << endl;
    cout << "3.\tInformacion" << endl << endl;
}

void Libreria :: pedir()
{
    system("cls");
    cout << "Ingresa el titulo: ";
    cin.getline(tituloSalvar, TAM);
}

int main()
{
    int opcion;
    
    char nombreTitulo[TAM];

    objLibreria.titulo();
    objLibreria.menu();

    cout << "Ingresa tu opcion: ";
    cin >> opcion;

    switch(opcion)
    {
        case 1:
                system("cls");
                cout << "Ingresa nombre del titulo: ";
                cin.getline(nombreTitulo, TAM);
                break;
        case 2:
                objLibreria.pedir();
                break;
        case 3:
                objLibreria.ejemploInfo();
                break;
    }

    return 0;
}

Quisiera que en la opcion dos, cuando ingrese los datos del libro se guardaran en un fichero (cada uno) y después en la consulta, con solo ingresar el nombre, se despliegue toda la información relacionada (titulo, autor, editorial, etc)

Y es en este código en donde si está el problema que mencioné!!!

En la opción 1 y 2 no me deja ingresar nada, me sale el mensaje de que el programa ha finalizado y no he ingresado nada!!!

Espero me puedan ayudar, y dar consejos y comentarios para hacer este programa con ficheros, ya que en el curso vi las funciones ifstream y ofstream de <fstream> y quisiera hacerlo de este modo!!!
exp_95


Más información sobre la lista de distribución Cconclase