[C con Clase] Duda sobre cin.getline

Luis Pedro Méndez elinv.elinv en gmail.com
Lun Abr 4 01:31:44 CEST 2011


Hola prueba el siguiente código:

-------------------------------------------------
/*
* Codigo desarrollado por Elinv.
* http://www.bragadomas.com/forodeprogramacion/index.php
* http://www.bragadomas.com
* http://www.bragadomas.com.ar
* http://luispedromendez.blogspot.com/
* http://elinv-elinv.blogspot.com/?expref=next-blog
*/

#include <iostream>
#include <cstring>
#define TAM 64

using std :: cin;
using std :: cout;
using std :: endl;

class Libreria
{
public:
    Libreria()
    {
        strcpy(title, "Libreria IPN");
    }
    void titulo()
    {
        system("cls");
        cout << title << endl << endl;
    }
    void pedir();
    void mostrar();

private:
    char title[TAM];
    char nombreLibro[TAM];

} objLibreria;

void Libreria :: pedir()
{
    cout << "Ingresa el titulo del libro: ";
    cin.getline(nombreLibro, TAM);  // He aquí el problema
}
void Libreria :: mostrar()
{
    cout << nombreLibro << endl;
}

int main()
{
    objLibreria.titulo();
    objLibreria.pedir();
    objLibreria.mostrar();

    return 0;
}
-------------------------------------------------

A nosotros nos funcionó

Elinv
2011/4/3 Jovanny <fxy_95 en yahoo.com.mx>

> Hola, mi duda es la siguiente:
>
> En la IDE Code :: Blocks 10.05, al usar la función cin.getline no me deja
> ingresar la cadena de caracteres:
>
> #include <iostream>
> #include <cstring>
> #define TAM 64
>
> using std :: cin;
> using std :: cout;
>
> class Libreria
> {
>   public:
>          Libreria()
>          {
>             strcpy(title, "Libreria IPN");
>          }
>          void titulo()
>          {
>             system("cls");
>             cout << title << endl << endl;
>          }
>          void pedir();
>
>   private:
>          char title[TAM];
>          char nombreLibro[TAM];
>
> }objLibreria;
>
> void Libreria :: pedir()
> {
>   cout << "Ingresa el titulo del libro: ";
>   cin.getline(nombreLibro, TAM);  // He aquí el problema
> }
>
> int main()
> {
>   objLibreria.titulo();
>   objLibreria.pedir();
>
>   return 0;
> }
>
> Al ejecutar este código, no me deja ingresar la cadena de caracteres
> (nombre del libro) y aparece el mensaje de que se ha finalizado el programa.
>
> Quisiera saber por qué ocurre eso, o si es que cometí algún error; en el
> caso de que el programa pidiera el nombre del autor, editorial, etc, usando
> la misma funcion cin.getline(), se salta el titulo pero si deja ingresar el
> autor o editorial.
>
> Si es posible usar una función alternativa a esta, quisiera saber cual!!!!
>
> Ayuda!!!!!!
> exp_95
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110403/96e33232/attachment.html>


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