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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  getch() y getche() sin conio.h
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: getch() y getche() sin conio.h  (Leído 10,353 veces)
abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
getch() y getche() sin conio.h
« en: 28 Julio 2012, 21:58 pm »

Saludos :)

Sólo queria preguntar una duda que tengo. Cuando compilo un programa en C e incluyo el #define <stdio.h> pero no el conio.h puedo usar las funciones getch() y getche.

Sin embargo, si busco en la librería de stdio.h no salen, sin embargo si para la librería conio.h.

¿Es posible que funcione por compilar desde Windows aunque no incluya las librerías? Es que no se muy bien por que pasa eso :)

Del mismo modo, puedo usar system() sin incluir stdlib.h :S

Gracias


« Última modificación: 28 Julio 2012, 22:22 pm por abreu20011 » En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #1 en: 28 Julio 2012, 23:10 pm »

¿Qué compilador usas?


En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #2 en: 28 Julio 2012, 23:30 pm »

Me pasa tanto usando el MinGW en windows, como con el de DevC++ :)
En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #3 en: 28 Julio 2012, 23:35 pm »

Dev-C++ usa MinGW también; el compilador te debe estar metiendo basura (DLLs adicionales que no necesitas) en tu ejecutable. Bájate el Dependency Walker para ver si se trata de eso.
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
yoxter

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #4 en: 29 Julio 2012, 00:01 am »

no estoy seguro puede ser ncurses lo que buscas, no uso windows de momento pero creo que dev-c++ usa gcc y conio no existe para gcc
o tal vez uconio ?

pásate por aquí

http://es.tldp.org/Tutoriales/NCURSES/tutorial-ncurses.html

En línea




Posiblemente soy el intento de programador mas fracaso de la historia !!
Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #5 en: 29 Julio 2012, 00:08 am »

conio.h no existe para Linux pero sí para Windows y es compatible con la gran mayoría de compiladores de C.
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #6 en: 29 Julio 2012, 04:08 am »

¿Es posible que funcione por compilar desde Windows aunque no incluya las librerías? Es que no se muy bien por que pasa eso :)

Del mismo modo, puedo usar system() sin incluir stdlib.h
Es posible pero no se recomienda.

Antes de llamar a una función se debe indicar su prototipo para que así el compilador pueda verificar que las llamadas y definición (si aplica) coincidan. La forma usual es incluyendo el encabezado que corresponda. Por ejemplo:
Código
  1. #include <stdlib.h> /* Prototipo de "system" */
  2.  
  3. /* ... */
  4.  
  5. system("pause");

Si no se indica el prototipo el compilador asume lo siguiente:
1) El tipo de retorno de la función es "int".
2) El numero y tipo de cada argumento esta dado por la llamada.

Si ello no es correcto se presentan problemas. Por ejemplo:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.   double num;
  6.  
  7.   num = atof("3.141592"); /* Falta el prototipo de "atof" */
  8.   printf("%f\n", num);
  9.  
  10.   return 0;
  11. }
Ahí el tipo de retorno de "atof" se asume como "int" cuando en realidad es de tipo "double".

Para evitar casos como ese lo mejor es incluir los prototipos (vía encabezados) y nos olvidamos del problema.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #7 en: 29 Julio 2012, 05:26 am »

Saludos y muchas gracias por las diversas respuestas :)

El Dependency Walker lo he bajado y comprobado mi archivo, y no me entero mucho de como va, más que de que tengo un error (no sé si mi archivo, o un error del programa a leerlo) y sí, encontré la función getch() pero no aclara mi duda >.<

El NCurses lo miré por encima y tiene buena pinta, pero primero quiero acabar bien C y las librerías ANSI C que ponerme con otra cosa. Por otra parte, no entiendo muy bien en qué me puede ayudar respecto a mi duda.

Y respecto a a lo que dices rir3760, ¿como que es posible, pero no se recomienda? ¿Me estas diciendo que es culpa de Windows que se me añaden esas librerías? Si es asi, pues que allanamiento de la programación xD

He estado mirando, y me he dado cuenta de que puedo, sencillamente, no declarar ni un solo include que el programa anda. Con el error que dices, pero anda. ¿Esto es correcto? ¿Es decir, si no declaráis las librerías os va? :S

Que yo sepa, no debería ser así, no? Porque si no, ¿como sabe que printf hace una cosa y no otra? Me siento muy perdido ahora mismo xD

Un saludo
« Última modificación: 29 Julio 2012, 05:28 am por abreu20011 » En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: getch() y getche() sin conio.h
« Respuesta #8 en: 29 Julio 2012, 15:29 pm »

El NCurses lo miré por encima y tiene buena pinta, pero primero quiero acabar bien C y las librerías ANSI C que ponerme con otra cosa. Por otra parte, no entiendo muy bien en qué me puede ayudar respecto a mi duda.

Si quieres aprender, no uses conio.h ya que no forma parte del estándar.

Y respecto a a lo que dices rir3760, ¿como que es posible, pero no se recomienda? ¿Me estas diciendo que es culpa de Windows que se me añaden esas librerías? Si es asi, pues que allanamiento de la programación xD

Es posible si el compilador añade las librerías por defecto, la culpa no es de Windows. Por eso te digo que compruebes con el Dependency Walker a ver si realmente es el compilador quien te añade basura.
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
Fire544

Desconectado Desconectado

Mensajes: 85


"Escucha el sonido del 0, 1"


Ver Perfil WWW
Re: getch() y getche() sin conio.h
« Respuesta #9 en: 30 Julio 2012, 03:09 am »

Mira abreu20011: Si andas en un compilador GCC en tu caso, dev-c++ compila con GCC, la causa a tu problema es que a veces cuando el IDE intenta buscar los binarios, libs e includes, no los encuentra porque pierde el enlce a los respectivos directorios. Verifica bien la configuracion de tu IDE y si el problema persiste entonces reinstala el IDE. Otra causa puede ser cuando incluyes libs que hacen llamadas desde si mismas a otras libs, por ejemplo windows.h hace llamdas a stdlib.h y tambien a winsock.h, sino reinicia tu ordenador y vuelve a iniciar el IDE y compila, si el problema sigue entonces postea nuevamente !!

Suerte amigo !! :xD
« Última modificación: 30 Julio 2012, 03:11 am por Fire544 » En línea

"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
getch propia para no usar getch de conio
ASM
neo_from_cs_matrix 3 5,724 Último mensaje 24 Agosto 2011, 18:43 pm
por Eternal Idol
validacion de datos en C + getch() en windows y linux sin conio
Programación C/C++
bdoX 2 4,363 Último mensaje 29 Julio 2012, 04:19 am
por rir3760
Problema con un getch() indisciplinado « 1 2 »
Programación C/C++
SCUMM 12 6,103 Último mensaje 31 Enero 2014, 14:53 pm
por vangodp
Eclipse no me reconoce las funciones getch() y cls()
Programación C/C++
momo75 4 4,694 Último mensaje 13 Enero 2015, 18:16 pm
por momo75
no entiendo el funcionamiento del getch
Programación C/C++
raxor12 3 2,116 Último mensaje 10 Febrero 2015, 09:10 am
por eferion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines