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


 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  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 429 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 »

#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
Colaborador
***
Desconectado Desconectado

Mensajes: 957



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

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: 432


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 »

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: 796



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

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
Colaborador
***
Desconectado Desconectado

Mensajes: 957



Ver Perfil WWW
Re: error, bucle infinito, alguien que me ayude a evitar el bucle infinito
« Respuesta #4 en: 27 Marzo 2020, 22:44 »

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
Bucle infinito interumpible
Programación C/C++
soyloqbuskas 3 1,584 Último mensaje 23 Agosto 2012, 01:06
por 0xDani
Bucle infinito y hilos en C
Programación C/C++
soyloqbuskas 3 2,961 Último mensaje 25 Octubre 2012, 15:46
por 0xDani
[Ayuda-C] Bucle infinito
Programación C/C++
Miky Gonzalez 4 1,566 Último mensaje 11 Octubre 2013, 15:51
por Miky Gonzalez
Problema con bucle infinito
Programación C/C++
magictheory 8 1,631 Último mensaje 1 Noviembre 2016, 12:57
por magictheory
Bucle Infinito ayuda.
Programación C/C++
jtrujilloj 1 1,006 Último mensaje 13 Febrero 2018, 09:42
por vangodp
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines