Hola
tengo quiero leer de la entrada estandar de a un carácter, ya sea una letra del alfabeto, un símbolo especial, fin de linea etc… hasta que agluien ingrese un fin de archivo, es decir un "control + d".
Para ello probe en usar: fgetc, getc, getchar.
Hago un ciclo while carácter leido sea distinto de EOF.
Pero sucede algo que no quiero y no se como solucionarlo.
Si ejecuto mi programa e ingreso minimo un carácter y hago control + d no se termina si no que tengo que por segunda vez hacer control + d.
Si por otro lado minomo ingreso un carácter luego hago control + d luego ingreso minimo un carácter luego contol + d no sale, es decir solo sale si hago dos veces consecutivas control +d.
Pero yo quiero que cuando hago control +d finalize y no tenga que hacerlo dos veces consecutivas.
Que puedo estar haciendo mal ¿??????
Por ejemplo si ejecutan este codigo van a ver que les pasa eso:
#include <stdio.h>
int main()
{
while( EOF != getc(stdin));
return 0;
}
A una cosa mas, no me sirve hacer control + c por que eso hace que termine la ejecución abruptamente yo solo quiero que cuando haga una vez sola control + d termine de leer de la entrada estandar para hacer otra cosa.
Espero que alguien me de una mano
saludos