Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Mario Olivera en 30 Agosto 2014, 17:56 PM

Título: Problema con EOF
Publicado por: Mario Olivera en 30 Agosto 2014, 17:56 PM
 Hola gente del foro, tengo un problema con un programa que al intentar construirlo me tire el error de que EOF no ha sido declarado :

Citar /home/alumno/Escritorio/Proyectos C++/practicas/libroCalificaciones.cpp||In member function 'void libroCalificaciones::recibirCalificaciones()':|
/home/alumno/Escritorio/Proyectos C++/practicas/libroCalificaciones.cpp|48|error: 'EOF' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|

Les dejo la parte del código donde uso EOF, por las dudas trabajo en linux

Código (cpp) [Seleccionar]
void libroCalificaciones::recibirCalificaciones()
{
   int calificacion;
   cout <<"Escriba las calificaciones de letra." <<endl
        <<"Escriba el caracter EOF para terminar la entrada." <<endl;

        while ((calificacion= cin.get()) != EOF)
        {
            switch (calificacion)
            {
                case 'A':
                case 'a':
                aCuenta++;
                break;

                case 'B':
                case 'b':
                dCuenta++;
                break;

                case 'C':
                case 'c':
                cCuenta++;
                break;

                case 'D':
                case 'd':
                dCuenta++;
                break;

                case 'F':
                case 'f':
                fCuenta++;
                break;

                case '\t':
                case '\n':
                case ' ':
                break;

                default:
                cout <<"Se introdujo una tecla de calificacion incorrecta."
                     <<" Escribe una nueva calificacion." <<endl;
                break;

            }
        }
}


Disculoen las molestias, saludos! :)
Título: Re: Problema con EOF
Publicado por: rir3760 en 30 Agosto 2014, 18:01 PM
Antes de utilizar la macro EOF debes incluir el encabezado <cstdio>.

Un saludo
Título: Re: Problema con EOF
Publicado por: flony en 1 Septiembre 2014, 03:50 AM
por las dudas las lineas 18 y 28 son identicas no deberian ser distintas ?
Título: Re: Problema con EOF
Publicado por: ecfisa en 1 Septiembre 2014, 06:35 AM
Hola.

Una sugerencia, para reducir tu código:
Código (cpp) [Seleccionar]

...
#include <locale>
...

 while ((calificacion= cin.get()) != EOF) {
   switch (toupper(calificacion)) {
     case 'A' :
       aCuenta++;
     break;
...


Saludos.
Título: Re: Problema con EOF
Publicado por: 6666 en 1 Septiembre 2014, 07:35 AM
while ((calificacion= cin.get()) != ' ') o while ((calificacion= cin.get()) != ' ')

tambien creo

while ((calificacion= cin.get()) != '0x0A')

o

while ((calificacion= cin.get()) != '\n')
Título: Re: Problema con EOF
Publicado por: Mario Olivera en 2 Septiembre 2014, 00:43 AM
Cita de: rir3760 en 30 Agosto 2014, 18:01 PM
Antes de utilizar la macro EOF debes incluir el encabezado <cstdio>.

Un saludo

Muchas Gracias rir3760 por tu ayuda, pude sulocionar el problema,  ;-)

Cita de: flony en 30 Agosto 2014, 18:01 PM
por las dudas las lineas 18 y 28 son identicas no deberian ser distintas ?

Si flony! muchas gracias!  ;-)
Cita de: ecfisa en 30 Agosto 2014, 18:01 PM
Hola.


Una sugerencia, para..
Cita de: 6666 en 30 Agosto 2014, 18:01 PM
while ((calificacion= cin.get()) != ' ') o while ((calificacion= cin.get()) != ' ')

El código esta en un libro no lo programe yo :S


Saludos a todos ;D