elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  error, bucle infinito, alguien que me ayude a evitar el bucle infinito
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error, bucle infinito, alguien que me ayude a evitar el bucle infinito  (Leído 2,550 veces)
marcos0204

Desconectado Desconectado

Mensajes: 1


Ver Perfil
error, bucle infinito, alguien que me ayude a evitar el bucle infinito
« 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;
}


En línea

fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito
« Respuesta #1 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?


En línea

Un byte a la izquierda.
ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito
« Respuesta #2 en: 26 Marzo 2020, 19:16 pm »

Código
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. int main(int argc, char **argv)
  5. {
  6.    char c;
  7.    c = fgetc(stdin);
  8.    while(c != EOF){
  9.        if(isalnum(c))
  10.            printf("%c", c);
  11.        else
  12.            c = fgetc(stdin);
  13.    }
  14.  
  15.    return 1;
  16. }

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
En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito
« Respuesta #3 en: 26 Marzo 2020, 20:45 pm »

Sin ser ningún lince...

Lees de un archivo sin previa apertura del mismo. Además donde esta la función isalnum?
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.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito
« Respuesta #4 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
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
probando un bucle infinito... « 1 2 3 »
Bugs y Exploits
mousehack 22 15,598 Último mensaje 28 Agosto 2015, 21:46 pm
por MCKSys Argentina
Bucle infinito y hilos en C
Programación C/C++
soyloqbuskas 3 4,446 Último mensaje 25 Octubre 2012, 15:46 pm
por 0xDani
[Ayuda-C] Bucle infinito
Programación C/C++
Miky Gonzalez 4 2,820 Último mensaje 11 Octubre 2013, 15:51 pm
por Miky Gonzalez
Problema con bucle infinito
Programación C/C++
magictheory 8 3,115 Último mensaje 1 Noviembre 2016, 12:57 pm
por magictheory
Bucle Infinito ayuda.
Programación C/C++
jtrujilloj 1 2,147 Último mensaje 13 Febrero 2018, 09:42 am
por vangodp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines