Foro de elhacker.net

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
  1. void libroCalificaciones::recibirCalificaciones()
  2. {
  3.    int calificacion;
  4.    cout <<"Escriba las calificaciones de letra." <<endl
  5.         <<"Escriba el caracter EOF para terminar la entrada." <<endl;
  6.  
  7.         while ((calificacion= cin.get()) != EOF)
  8.         {
  9.             switch (calificacion)
  10.             {
  11.                 case 'A':
  12.                 case 'a':
  13.                 aCuenta++;
  14.                 break;
  15.  
  16.                 case 'B':
  17.                 case 'b':
  18.                 dCuenta++;
  19.                 break;
  20.  
  21.                 case 'C':
  22.                 case 'c':
  23.                 cCuenta++;
  24.                 break;
  25.  
  26.                 case 'D':
  27.                 case 'd':
  28.                 dCuenta++;
  29.                 break;
  30.  
  31.                 case 'F':
  32.                 case 'f':
  33.                 fCuenta++;
  34.                 break;
  35.  
  36.                 case '\t':
  37.                 case '\n':
  38.                 case ' ':
  39.                 break;
  40.  
  41.                 default:
  42.                 cout <<"Se introdujo una tecla de calificacion incorrecta."
  43.                      <<" Escribe una nueva calificacion." <<endl;
  44.                 break;
  45.  
  46.             }
  47.         }
  48. }
  49.  

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
  1. ...
  2. #include <locale>
  3. ...
  4.  
  5.  while ((calificacion= cin.get()) != EOF) {
  6.    switch (toupper(calificacion)) {
  7.      case 'A' :
  8.        aCuenta++;
  9.      break;
  10. ...
  11.  

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
Antes de utilizar la macro EOF debes incluir el encabezado <cstdio>.

Un saludo

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

por las dudas las lineas 18 y 28 son identicas no deberian ser distintas ?

Si flony! muchas gracias!  ;-)
Hola.


Una sugerencia, para..
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