| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
kamikazer300
Registrado: 06 Ago 2007 Mensajes: 8
| Publicado: 19/09/2007 2:28 am | | | Título: la función getch |
| acabo de empezar con el C, pero nada más empezar ya tengo un problema!. uso el dev-c++ y cuando escribo esto
#include<stdio.h> #include<stdlib.h>
int main() { printf("Hola mundo\n"); getch(); return 0; } me da error. pero cuando en vez de getch pongo system("PAUSE"); no me da error. lo que pasa es que con el system pause al final pone presione una tecla para continuar, por eso quiero usar el getch. ¿qué hago mal?? |
|
| Volver arriba | |
 |
polly
Registrado: 19 Jul 2007 Mensajes: 61
| Publicado: 19/09/2007 3:26 am | | | Título: |
| podrias decir que error te da , anque supongo que sera porque el getch() es de conio.h , creo que es preferible que utilices C standar , system("pause") es una buena opcion. para solucionar tu problema revisa tu conio.h _________________ R.I.P Kurt Cobain ------------------------- |
|
| Volver arriba | |
 |
Wellingtom

Registrado: 19 Sep 2007 Mensajes: 20 Ubicación: venezuela
| Publicado: 19/09/2007 5:31 am | | | Título: hello! |
| hello!! creo, que no importa que uses el getch() o no, ... el system ("PAUSE") o no, a mi siempre me sale eso de "puye cualquier tecla para continuar" y prueba tambien incluir la biblioteca conio.h
#include <conio.h>
aunque a mi, no me hace falta colocarlo... yo uso visual c++ 6.0 y solo tengo que incluir
#include <stdio.h> |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 21/09/2007 9:31 am | | | Título: Re: hello! |
| | kamikazer300 escribió: | acabo de empezar con el C, pero nada más empezar ya tengo un problema!. uso el dev-c++ y cuando escribo esto
[...]
me da error. pero cuando en vez de getch pongo system("PAUSE"); no me da error. lo que pasa es que con el system pause al final pone presione una tecla para continuar, por eso quiero usar el getch. ¿qué hago mal?? |
Como ya se ha comentado en innumerables ocasiones el soporte de la biblioteca conio de Borland varia entre las distintas versiones de Dev-C++. Si eres un principiante lo mejor es que evites el uso de esa [CENSORED] biblioteca que solo resulta en un [CENSORED] de frustraciones a los principiantes de C (y tambien a los que tratamos de ayudarlos).
Si aun asi quieres instalar esa biblioteca revisa los temas del foro especifico de Dev-C++ o utiliza el motor de busqueda de este sitio.
| Wellingtom escribió: | y prueba tambien incluir la biblioteca conio.h
#include <conio.h>
aunque a mi, no me hace falta colocarlo... yo uso visual c++ 6.0 y solo tengo que incluir
#include <stdio.h> |
Omitir el prototipo de la funcion tecnicamente no es un error pero si una mala practica y solo es posible cuando:
1) Al llamarse a la funcion el numero de argumentos coincide exactamente con el prototipo (omitido) de la funcion. -Y- 2) El valor de retorno es de tipo int.
En cualquier otro caso como con las funciones que admiten un numero variable de argumentos o cuyo tipo de retorno es distinto de int se generaria un error.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
Quotex
Registrado: 22 Sep 2007 Mensajes: 7
| Publicado: 23/09/2007 11:56 am | | | Título: |
| Una cosa yo tambien tengo una duda con lo de hola mundo, y por no hacer otro tema lo pongo aqui.
Yo uso el c++4.9. Como lo podria acer para que cuando me diga lo de pulse una tecla para continuar la pulse y me salga otra frase que yo elija?
Gracias de antemano y si no puedo poner este post aqui me lo decis y lo borro todo. |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 23/09/2007 1:18 pm | | | Título: |
| Los comandos a ejecutar que le puedes pasar como argumentos a la funcion system dependen del interprete de comandos que este disponible. En tu caso puedes redirigir la salida del comando pause de esta forma:
| Código: | system("pause>nul"); |
Y para imprimir un mensaje cualquiera puedes utilizar varias funciones, por ejemplo printf:
| Código: | printf("{ENTER} para continuar ..."); fflush(stdout); system("pause>nul"); |
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
Quotex
Registrado: 22 Sep 2007 Mensajes: 7
| Publicado: 23/09/2007 1:23 pm | | | Título: |
| Lo de sistem("pause>nul"):
En getch() como seria?
Ultima edición por Quotex el 23/09/2007 1:31 pm; editado 2 veces |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 23/09/2007 1:30 pm | | | Título: |
| No te entiendo.
El comando pasado a la funcion system y la funcion getch no tienen nada que ver, el primero es un comando que depende de un interprete de comandos como command.com o (mas seguro) cmd.exe mientras que getch es una funcion de un tercero (conio de Borland).
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
Quotex
Registrado: 22 Sep 2007 Mensajes: 7
| Publicado: 23/09/2007 1:32 pm | | | Título: |
| Sigue sin salirme yo pongo:
| Código: | #include <stdio.h> #include <stdlib.h>
int main() { printf("hola mundo\n"); printf("{ENTER}para continuar... adios mundo\n"); fflush(stdout); system("pause>nul"); return 0; }
|
Y no me sale me salen las dos frases juntas y yo quiero apretar una tecla y que me salga la segunda frase |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 23/09/2007 1:40 pm | | | Título: |
| | Quotex escribió: | | Y no me sale me salen las dos frases juntas |
Te salen juntas porque asi indicas que se haga. En C cada sentencia se ejecuta una por una y de arriba hacia abajo:
| Código: | #include <stdio.h> #include <stdlib.h>
int main() { /* 1 */ printf("hola mundo\n"); /* 2 */ printf("{ENTER}para continuar... adios mundo\n"); /* 3 */ fflush(stdout); /* 4 */ system("pause>nul"); /* 5 */ return 0; } |
1) Primero se imprime la cadena "hola mundo\n" 2) A continuacion se imprime "{ENTER}para continuar... adios mundo\n" 3) A continuacion fflush se asegura que esas cadenas se hayan enviado a la salida estandar (esta es stdout). 4) A continuacion system ejecuta el interprete de comandos, es este el que genera la pausa. 5) La sentencia "return 0;" causa la terminacion del programa.
| Quotex escribió: | | yo quiero apretar una tecla y que me salga la segunda frase |
Piensalo un poco y veras que es bien sencillo lograrlo.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
Quotex
Registrado: 22 Sep 2007 Mensajes: 7
| Publicado: 23/09/2007 1:46 pm | | | Título: |
| Muchas gracias. No me izo falta ni acavar de leer el post para darme cuenta. con las primeras frases del post me di cuenta.
haora tengo otro problema.
¿como ago que para pasar a la siguiente frase se use una tecla especifica? |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 23/09/2007 7:30 pm | | | Título: |
| | Quotex escribió: | | ¿como ago que para pasar a la siguiente frase se use una tecla especifica? |
Me parece que vas demasiado rapido, en su lugar te recomendaria que compraras un buen libro sobre C como (ambos en ingles) "Pointers on C" o "The C programming language".
O si quieres intentarlo primero necesitas leer el caracter con scanf (o fgets) y a continuacion verificar si es el caracter indicado, todo esto se colocaria dentro de un bucle que se ejecutaria hasta que el caracter introducido sea el correcto.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
|