Autor
|
Tema: getchar() != EOF (Leído 15,490 veces)
|
Treppe
Desconectado
Mensajes: 15
|
Hola, esto viene en relación con un problema que tuve anteriormente ya solucionado. Bueno comprobando lo que me dijeron llegué a hacer el siguiente programa: #include <stdio.h> main() { int c; while ((c = getchar())!= EOF) printf("%d\t\n", ((c = getchar()) != EOF)); putchar(c); } En fin, el caso es que quisiera saber como puedo verificar que la expresión getchar() != EOF es 0 o 1. Y a parte de eso quiero saber como imprimir el valor de EOF. La verdad es que estoy un poco perdido, le he dado vueltas pero no lo encuentro, aunque descubrí algo, cuando abro el programa y escribo EOF sale " 1 1" tal vez sea eso?, y si no lo se... qué es? xD gracias por las molestias
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Bueno comprobando lo que me dijeron llegué a hacer el siguiente programa:
#include <stdio.h>
main() { int c; while ((c = getchar())!= EOF) printf("%d\t\n", ((c = getchar()) != EOF)); putchar(c); } Si vas a aprender C te conviene hacerlo bien, la definición de la función main debe ser "int main(void) ..." o bien "int main() ..." y se debe indicar su valor de retorno con al menos "return 0;". Un problema importante en tu programa es que lees dos caracteres dentro del bucle: uno en la condición y otro en la llamada a printf. Y lo que se ejecuta en el bucle solo es la primera sentencia ya que faltan las llaves. Como verificar que la expresión "(c = getchar()) != EOF" resulte en 1 o 0 esta implícito en tu programa: 1) El bucle se ejecuta solo mientras su condición resulte en un valor distinto de cero y 2) El resultado del operador de desigualdad "!=" resulta en 1 si los operandos son distintos y 0 en caso contrario (si son iguales). La macro EOF resulta en un valor de tipo int, puedes imprimirla como cualquier variable de ese tipo. El programa con esas correcciones es: #include <stdio.h> #include <stdlib.h> int main(void) { int c; return EXIT_SUCCESS; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Treppe
Desconectado
Mensajes: 15
|
Ok, gracias. Pero hay otra cosa que no entiendo que creo que es fundamental para esto xD. Es sobre la salida y entrada de caráctares, no entiendo muy bien el concepto... en qué consiste?, en donde se efectua?, para que sirve?.
|
|
« Última modificación: 19 Julio 2011, 13:56 pm por Treppe »
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.513
El Dictador y Verdugo de H-Sec
|
De donde estas estudiando C?
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Es sobre la salida y entrada de caráctares, no entiendo muy bien el concepto... en qué consiste?, en donde se efectua?, para que sirve?. Si apenas empiezas con el lenguaje C te conviene tener a la mano un buen libro o curso sobre este, revisa los mensajes fijos en este foro, hay uno sobre el tema. Cuando un programa se ejecuta se tienen disponibles tres streams (o flujos) de caracteres: la entrada estándar (stdin), la salida estándar (stdout) y la salida estándar para errores (stderr). Ellos te permiten acceder a la entrada y salida del programa en forma de una secuencia de caracteres (un stream en modo texto con algunas limitaciones). El origen de esos streams depende del entorno. Por ejemplo el programa se puede ejecutar desde un script y su entrada puede ser un archivo de texto o tal vez la salida de otro programa. De nuevo: para esto nada mejor que un buen libro. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Treppe
Desconectado
Mensajes: 15
|
Este es el libro que yo cogí del primer del mensaje fijo de este subforo, "El Lenguaje de Programación C" por Brian W. Kernighan, Dennis M. Ritchie. Alguna otra sugerencia?
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
En mi opinion uno de los mejores libros para aprender C (ademas de K&R2) es el siguiente, por desgracia solo disponible (hasta donde tengo entendido) en ingles: ---- Pointers on C, 1st edition Kenneth Reek Addison Wesley, July 25, 1997 ISBN: 0673999866 ----
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
problema con getchar()
Programación C/C++
|
juanigato
|
5
|
9,488
|
23 Diciembre 2013, 19:47 pm
por leosansan
|
|
|
ayuda con getchar
Programación C/C++
|
ometeotl
|
6
|
5,455
|
10 Octubre 2011, 19:46 pm
por ometeotl
|
|
|
Borrar buffer , como funciona getchar
Programación C/C++
|
Jomad205
|
2
|
10,608
|
13 Noviembre 2012, 17:23 pm
por Jomad205
|
|
|
Ayuda con getchar:(
Programación C/C++
|
TopoJunior
|
5
|
3,688
|
14 Febrero 2013, 20:53 pm
por durasno
|
|
|
Problema con while y getchar.
Programación C/C++
|
Spinerker
|
3
|
2,822
|
17 Octubre 2013, 14:18 pm
por Eternal Idol
|
|