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)
| | |-+  AYUDA LENGUAJE C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA LENGUAJE C  (Leído 6,619 veces)
LeoJ24

Desconectado Desconectado

Mensajes: 31



Ver Perfil
AYUDA LENGUAJE C
« en: 7 Enero 2013, 23:58 pm »

BUENASS..
ESTOY ADENTRANDOME EN ESTO DEL HACKER Y DECIDI EMPEZAR POR BATCH Y LENGUAJE C.
BATCH YA LO APRENDI Y AHORA ESTOY INTENTANDO APRENDER LENGUAJE C PERO ME QUEDE ESTANCADO EN LA FUNCION GETCH Y GETCHE. QUIERO USAR GETCHE PARA QUE CUANDO INTRODUZCA UN NUMERO EN EL PROGRAMA YA COMPILADO APAREZCA EL NUMERO EN EL SIGUIENTE REGLON SIN NECESIDAD DE APRETAR NADA MAS QUE EL NUMERO. LO QUE YO PONGO EN EL COMPILADOR ES:

#include <stdio.h>
int main ()
{
int num;
printf ("ESCRIBI UN NUMERO\n");
scanf ("%i", &num);
num = getche ();
printf ("EL NUMERO ESCRITO ES: %i\n", num);
system ("PAUSE");
return 0;
}

DESPUES LO COMPILO Y LO EJECUTO, PERO AL EJECUTAR INGRESO EL NUMERO Y NO PASA NADA. APRETO ENTER, Y EL PUNTERO SE UBICA EN EL REGLON DE ABAJO DANDOME COMO UNICA OPCION TECLEAR ALGO.
CUANDO ESCRIBO EL SEGUNDO NUMERO, APARECE LA ORACION "EL NUMERO ESCRITO ES: xx" PERO EL NUMERO NO ES IGUAL A NINGUNO DE LOS ANTERIORES.
EN RESUMEN, LA FUNCION GETCHE FUNCIONA, PERO NO ES IGUAL A NINGUNO DE LOS DOS NUMEROS QUE INTRUDUJE.
ALGUIEN SABE A QUE SE DEBE???
SALUDOS


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: AYUDA LENGUAJE C
« Respuesta #1 en: 8 Enero 2013, 06:02 am »

Hola! la verdad no entendi bien que es lo que queres; algunas aclaraciones:

- las funciones getch y getche no son estandar por lo tanto no se recomienda usarlo si recien empezas(para eso tenes getchar()), ademas estas funciones son para el ingreso de caracteres, no para enteros.

- para imprimir dos valores necesitas dos variables

-
Citar
LO QUE YO PONGO EN EL COMPILADOR ES:
lo pones en un archivo fuente, no en el compilador


-
Citar
LA FUNCION GETCHE FUNCIONA, PERO NO ES IGUAL A NINGUNO DE LOS DOS NUMEROS QUE INTRUDUJE. ALGUIEN SABE A QUE SE DEBE???
como te decia antes getche es para caracteres. Si vos ingresas algo a travez de getche() lo que se almacena en la variable num, es el ASCII de una letra. PAra que se entienda ejecuta:
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. int main ()
  4. {
  5. int num;
  6. printf ("ESCRIBI UN NUMERO\n");
  7. num = getche (); /* <--- ingresa el 5 */
  8. printf ("EL NUMERO ESCRITO ES: %i\n", num); /* vas a ver que te imprime el numero 53 */
  9. system ("PAUSE");
  10. return 0;
  11. }
Tabla ASCII: http://www.asciitable.com/

Cualquier duda segui preguntando. Saludos

PD: no me parece muy bueno de donde estas aprendiendo, yo lo cambiaria


En línea

Ahorrate una pregunta, lee el man
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: AYUDA LENGUAJE C
« Respuesta #2 en: 8 Enero 2013, 07:54 am »

Opinión personal: No importa de donde aprendas o como aprendas, lo importante es que entiendas el lenguaje, te recomiendo esta pagina: http://www.cplusplus.com/reference/ Esta en ingles pero no hay tanta necesidad de leer (mas que en algunas ocasiones) ya que las personas aprendemos mas al principio viendo (ejecuta los códigos de ejemplo que te brindan), cuando más o menos agarres la onda lee como estructurar un programa, consejos, que no hacer que si hacer, etc.

Algo mas ligero y en español: http://c.conclase.net/curso/ aun que hay códigos que te brindan que están mal (cuando vayas a la estructura avl la función "balance" necesita unos ajustes ya que no funciona bien en algunos casos, aun así esta buena para aprender.)

En lugar %i usa %c.
Al querer imprimir un carácter almacenado en una variable de tipo int debes hacer (recomendable) usar una mascara (0xff) para que solo tome el valor 1 byte (el mas insignificante) en lugar de todos los demás.

Todo lo que esta dentro de la biblioteca conio.h NO SON ESTÁNDARES (no es portable entre plataformas Sistemas Operativos) pero claro que las puedes usar, de hecho todo lo que esta en esta biblioteca las puedes reemplazar.

Código
  1.  
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. int main ()
  6. {
  7. int num;
  8. printf ("ESCRIBI UN NUMERO\n");
  9. num = getche (); // usa mejor getchar();
  10. printf ("EL NUMERO ESCRITO ES: %c\n", (0xff & num) );
  11. system ("PAUSE"); // puedes usar getchar();
  12. return 0;
  13. }
  14.  
  15.  

Sin usar conio.h
Código
  1. #define PAUSE char __c__; while ((__c__ = getchar()) != '\n' && __c__ != EOF); puts("Pulsa la tecla ENTER para continuar."); getchar();
  2. #include <stdio.h>
  3.  
  4. int main ()
  5. {
  6.    char res = 0x0;
  7.    printf ("Escribe una letra\n");
  8.    res = getchar();
  9.    printf ("La letra escrita es: %c\n", res);
  10.    PAUSE  //No usar en la macro ;
  11.    return EXIT_SUCCESS;
  12. }
  13.  
  14.  

Dulces Lunas!¡.
« Última modificación: 8 Enero 2013, 08:17 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: AYUDA LENGUAJE C
« Respuesta #3 en: 8 Enero 2013, 19:33 pm »

Lo mismo en C++:
Código
  1. #include <iostream>
  2. #include <conio.h>
  3. using std::cout;
  4.  
  5. int main()
  6. {
  7.    int num;
  8.    cout<<"Escribe un numero: ";
  9.    num = getche();
  10.    cout<<"\nEl nro escrito es "<<num-'0';
  11.    return 0;
  12. }

Ya que recién vas empezando es bueno que conozcas de su existencia  :silbar:
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
LeoJ24

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: AYUDA LENGUAJE C
« Respuesta #4 en: 8 Enero 2013, 20:18 pm »

GRACIAS A TODOS POR LAS RESPUESTAS, YA ENTENDI ESTO DEL GETCH Y GETCHE GRACIAS A USTEDES.. MI PROXIMO PASO SON LAS SENTENCIAS DE CONDICION Y E SALTO (if, switch, goto, break).
SALU2  :)
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: AYUDA LENGUAJE C
« Respuesta #5 en: 8 Enero 2013, 20:57 pm »


BUENASS..

Vamos, resumiendo y sin parafernalias:
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int main (){
  5. int num;
  6. printf ("ESCRIBI UN NUMERO\n");
  7. num = getche ();
  8. puts("\n");
  9. printf ("EL NUMERO ESCRITO ES: %c es decir %d o sea %d\n", num,num-48,num-'0') ;
  10. system ("PAUSE");
  11. return 0;
  12. }
  13.  
Saluditos!.
En línea

Kherom

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: AYUDA LENGUAJE C
« Respuesta #6 en: 8 Enero 2013, 21:48 pm »

No grites, por favor.
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: AYUDA LENGUAJE C
« Respuesta #7 en: 8 Enero 2013, 22:16 pm »

No grites, por favor.
Creo que se refiere a ti LeoJ24, por el hecho de que escribir en mayúsculas se entiende equivale a gritar.
¿O me equivoco?.
Saluditos!.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: AYUDA LENGUAJE C
« Respuesta #8 en: 9 Enero 2013, 00:19 am »

GRACIAS A TODOS POR LAS RESPUESTAS, YA ENTENDI ESTO DEL GETCH Y GETCHE GRACIAS A USTEDES.. MI PROXIMO PASO SON LAS SENTENCIAS DE CONDICION Y E SALTO (if, switch, goto, break).
SALU2  :)

En lugar de usar goto mejor usa:

Biblioteca: setjmp.h
jmp_buf;
setjmp();
longjmp():

Código
  1.  
  2. /* longjmp example */
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <setjmp.h>
  6.  
  7. main()
  8. {
  9.  jmp_buf env;
  10.  int val;
  11.  
  12.  val=setjmp(env);
  13.  
  14.  printf ("val is %d\n",val);
  15.  
  16.  if (!val) longjmp(env, 1);
  17.  
  18.  return 0;
  19. }
  20.  
  21.  

Más info: http://www.cplusplus.com/reference/csetjmp/longjmp/

Te recomiendo tirar a la basura conio.h

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: AYUDA LENGUAJE C
« Respuesta #9 en: 9 Enero 2013, 02:11 am »

Tengo entendido que no existe problema que no pueda resolverse sin usar goto (se puede prescindir de él en el 99% de los casos), que con los bucles basta, o que existen otros métodos más eficientes:
Citar

Sin embargo, esperemos más respuestas; quizás alguna nos ilustra con ejemplos jeje  :rolleyes:
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con lenguaje c
Ejercicios
jgilberto 0 3,241 Último mensaje 1 Agosto 2009, 04:02 am
por jgilberto
Ayuda con lenguaje
Programación General
Fuen 4 2,768 Último mensaje 3 Febrero 2011, 23:36 pm
por Stoya
Ayuda Con Asp.net lenguaje C#
.NET (C#, VB.NET, ASP)
Algotrix 2 3,777 Último mensaje 2 Marzo 2011, 19:20 pm
por Algotrix
AYUDA CON LENGUAJE ENSAMBLADOR
ASM
nuru_chan 1 3,256 Último mensaje 12 Diciembre 2012, 18:12 pm
por Eternal Idol
ayuda con lenguaje c por favor!
Programación C/C++
mariaorlando0922 2 2,126 Último mensaje 11 Febrero 2013, 14:36 pm
por mariaorlando0922
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines