Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Por qué tengo que incluir <cstdio> para usar la constante EOF en C++?

Estas en el tema de ¿Por qué tengo que incluir <cstdio> para usar la constante EOF en C++? en el foro de C/C++ en Foros del Web. En teoría debería poder usar la constante EOF Sólo incluyendo la librería iostream, no?... es que si lo hago así, me marca error, hasta que ...
  #1 (permalink)  
Antiguo 25/11/2012, 23:34
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años, 1 mes
Puntos: 8
Pregunta ¿Por qué tengo que incluir <cstdio> para usar la constante EOF en C++?

En teoría debería poder usar la constante EOF Sólo incluyendo la librería iostream, no?... es que si lo hago así, me marca error, hasta que agregue cstdio...

Uso Code::Blocks con MinGW en Windows 7...

Espero puedan ayudarme, saludos.
  #2 (permalink)  
Antiguo 26/11/2012, 09:05
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 9 meses
Puntos: 83
Respuesta: ¿Por qué tengo que incluir <cstdio> para usar la constante EOF en C++?

EOF está declarado en stdio, a menos que iostream lleve un include stdio no tendras declarada la macro EOF. Esta es la definicion de EOF:

End-of-File
It is a macro definition of type int that expands into a negative integral constant expression (generally, -1).
It is used as the value returned by several functions in header <stdio> to indicate that the End-of-File has been reached or to signal some other failure conditions.
It is also used as the value to represent an invalid character.

Si de todas formas quieres usar EOF sin incluir stdio puedes crear tu propia macro:

Código:
#ifndef EOF
    #define EOF	 (-1)
#endif
Saludos
vosk
  #3 (permalink)  
Antiguo 27/11/2012, 01:11
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: ¿Por qué tengo que incluir <cstdio> para usar la constante EOF en C++?

Gracias por responder, es que en mi libro dice que la constante EOF está declarada en la biblioteca iostream.

El libro es C++ cómo programar, de Deitel.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:10.