Título: error, bucle infinito, alguien que me ayude a evitar el bucle infinito Publicado por: marcos0204 en 26 Marzo 2020, 15:49 pm #include <stdio.h>
#include <ctype.h> int main(int argc, char **argv) { char c; c = fgetc(stdin); while(c != EOF){ if(isalnum(c)) printf("%c", c); else c = fgetc(stdin); } return 1; } Título: Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito Publicado por: fary en 26 Marzo 2020, 16:10 pm Sin ser ningún lince...
Lees de un archivo sin previa apertura del mismo. Además donde esta la función isalnum? Título: Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito Publicado por: ThunderCls en 26 Marzo 2020, 19:16 pm Código
1- Utiliza etiquetas de codigo cuando publiques codigo en el foro 2- Te recomendaria que aprendas a depurar tus programas Tu Problema: Necesitas eliminar el "else" de tu condicional. La linea: c = fgetc(stdin); necesita ejecutarse siempre, de lo contrario tu codigo lee un caracter y en caso de ser alfanumerico se ejecuta el printf pero nunca el fgetc, por lo que el puntero del stream no se incrementa, en la proxima iteracion se vuelve a leer exactamente el mismo caracter anterior y asi infinitamente sin llegar nunca al EOF Título: Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito Publicado por: K-YreX en 26 Marzo 2020, 20:45 pm Sin ser ningún lince... El "archivo" del que lee es stdin, es decir, la entrada estándar (teclado) y la función isalnum() está en la librería <ctype.h>Lees de un archivo sin previa apertura del mismo. Además donde esta la función isalnum? Sin ser un lince tampoco... :rolleyes: :rolleyes: El problema como ya dijo @ThunderCls es que sobra el else de ese condicional para que siempre se pueda ingresar un nuevo carácter al finalizar cada vuelta. Título: Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito Publicado por: fary en 27 Marzo 2020, 22:44 pm El "archivo" del que lee es stdin, es decir, la entrada estándar (teclado) y la función isalnum() está en la librería <ctype.h> Sin ser un lince tampoco... :rolleyes: :rolleyes: El problema como ya dijo @ThunderCls es que sobra el else de ese condicional para que siempre se pueda ingresar un nuevo carácter al finalizar cada vuelta. :-[ :-[ :-[ :-[ Pues sí, metí bién la pata sí. saludos de casi lince. :laugh: :xD |