/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

la función getch

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
kamikazer300



Registrado: 06 Ago 2007
Mensajes: 8

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

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

MensajePublicado: 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
Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 3657
Ubicación: Mexico

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

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

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

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

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

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

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

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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com