Autor
|
Tema: getch() y getche() sin conio.h (Leído 10,272 veces)
|
abreu20011
Desconectado
Mensajes: 33
|
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
Mensajes: 267
|
¿Qué compilador usas?
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
abreu20011
Desconectado
Mensajes: 33
|
Me pasa tanto usando el MinGW en windows, como con el de DevC++
|
|
|
En línea
|
|
|
|
Queta
Desconectado
Mensajes: 267
|
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
Mensajes: 48
|
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
Mensajes: 267
|
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
Mensajes: 1.639
|
¿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: #include <stdlib.h> /* Prototipo de "system" */ /* ... */
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: #include <stdio.h> int main(void) { double num; num = atof("3.141592"); /* Falta el prototipo de "atof" */ return 0; }
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
Mensajes: 33
|
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
Mensajes: 267
|
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
Mensajes: 85
"Escucha el sonido del 0, 1"
|
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 !!
|
|
« Ú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".
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
getch propia para no usar getch de conio
ASM
|
neo_from_cs_matrix
|
3
|
5,701
|
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,338
|
29 Julio 2012, 04:19 am
por rir3760
|
|
|
Problema con un getch() indisciplinado
« 1 2 »
Programación C/C++
|
SCUMM
|
12
|
6,041
|
31 Enero 2014, 14:53 pm
por vangodp
|
|
|
Eclipse no me reconoce las funciones getch() y cls()
Programación C/C++
|
momo75
|
4
|
4,667
|
13 Enero 2015, 18:16 pm
por momo75
|
|
|
no entiendo el funcionamiento del getch
Programación C/C++
|
raxor12
|
3
|
2,085
|
10 Febrero 2015, 09:10 am
por eferion
|
|