Título: Pregunta noob: ¿Pause o no pause? C++ Publicado por: Puntoinfinito en 23 Julio 2012, 00:04 am Buenas a tod@s.
Veamos, estoy siguiendo los videotutoriales de Jesus Conde de programación C++. En sus VT trabaja en Microsoft Visual C++ 2006, algo antiguo... Pero ese no es el problema. Ese esta en que al compilar el siguiente código: Código
Y abrirlo una vez generado, le sale una terminal win32, con el código 100% escrito correctamente, pero con un "pause" (en lo que sería batch) añadido. En cambio a mi, si lo ejecuto, se abre el código, se imprimen los caracteres y se cierra sin dejar tiempo para poder leer. Supongo que seria causa del malor int main() y tendré que guardar como variable y incorporarla dentro de main(...) . O no, no se mucho de esto xD... ¡Ayuda expertos! Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: DickGumshoe en 23 Julio 2012, 00:10 am ¡Hola!
Efectivamente, necesitas hacer una pausa. Si el creador de ese videotutorial compila directamente desde cmd, es normal que no le haga falta pausar el programa. Una solución es poner getchar() al final del código. Si has usado justo antes scanf() u otra función que deje basura en el buffer del teclado, necesitarás poner dos veces getchar(). Así, el primer getchar() eliminaría la basura del buffer y el segundo pedirá un carácter, pausando así el programa. Una mala solución es poner system("pause"), incluido en stdlib.h. Este no es portable; solo funciona en Windows, por lo que no te aconsejo usarlo, a pesar de que es muy usado por internet. Saludos! Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: rir3760 en 23 Julio 2012, 01:21 am El problema se debe al IDE (entorno de desarrollo integrado) que estas utilizando. La gran mayoría de estos como Lcc-win32, Pelles C, CodeBlocks, Visual Studio, etc. generan esa pausa de forma automática, lo correcto ya que siendo estrictos no forma parte del programa.
Unos pocos IDEs (en este momento solo recuerdo a Dev-C++) no la generan. Para evitar llenar de pausas los programas (que para empezar no son necesarias) me parece mejor cambiar a otro. Un saludo Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: DickGumshoe en 23 Julio 2012, 01:28 am Esa pausa que tienen muchos IDEs están bien cuando siempre vas a ejecutar el programa directamente desde éste. Pero si lo que haces es ejecutar el .exe, la pausa no la genera, así que yo siempre uso getchar(), que sí hace la pausa en el .exe generado.
¡Saludos! Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: Puntoinfinito en 23 Julio 2012, 14:11 pm Aja, pude resolverlo. La cuestión era poner :
Código
Y si aparece en el .exe generado. Gracias Saludos cracks Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: DickGumshoe en 23 Julio 2012, 14:13 pm Si estás en C++ no te será necesario incluir stdio.h para usar getchar(), puedes poner cin.get(), que es el equivalente a getchar() en C++.
Saludos! Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: Puntoinfinito en 23 Julio 2012, 14:25 pm Los dos de maravilla. ¡Anotados!
Gracias expertos, y saludos. Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: Puntoinfinito en 27 Julio 2012, 13:03 pm Expertos xD
Teóricamente esto ha de hacer pausa, pero ahora el compil no me hace caso... Código
Lo he probado de poner a todos los sitios donde creo que se podría colocar... pero nain... Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: avesudra en 27 Julio 2012, 13:26 pm ¿Y si usas el "getchar" de C++?
Código PD:No se seguro si es ese eh...Es que ahora mismo no puedo probarlo. Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: rir3760 en 27 Julio 2012, 17:16 pm El problema es el siguiente, al pedir el numero tecleas:
Código: 123{ENTER} Los caracteres "123" se toman para obtener el numero 123 pero el avance de linea '\n' se queda en el bufer de la entrada estándar. Cuando al final del programa llamas a la función "getchar" esta lee ese carácter, retorna de inmediato y el efecto es no tener la mentada pausa. Por ello debes descartar el resto de la linea, en C++ hay varias opciones políticamente correctas, la mas sencilla es utilizando un bucle: Código
Un saludo Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: anonimo12121 en 27 Julio 2012, 17:42 pm cin.get() for paused
Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: X3R4CK3R en 6 Agosto 2012, 02:38 am Es más práctico sincronizar el buffer con la entrada de caracteres.
Código
http://www.cplusplus.com/reference/iostream/istream/sync/ Saludos Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: тαптяα en 6 Agosto 2012, 10:11 am Es más práctico sincronizar el buffer con la entrada de caracteres. ++Código
http://www.cplusplus.com/reference/iostream/istream/sync/ Saludos Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: Puntoinfinito en 8 Agosto 2012, 18:04 pm Mirad...
vGiwmHHhQ48 También he probado dejando un espacio antes del pause, pero nada: Código: #include <iostream> << endl;* Que está pasando o.O Saludos Título: Re: Pregunta noob: ¿Pause o no pause? C++ Publicado por: X3R4CK3R en 8 Agosto 2012, 19:24 pm Usa cin.sync() antes del cin.get(), como ya te dije en mi anterior comentario.
Saludos |