Título: Ayuda con getchar Publicado por: prometheus48 en 31 Diciembre 2011, 18:58 pm Hola,
Estaba haciendo una aventura de texto y tengo un problema con el bucle. Miren, hay un bucle en el juego, y dentro hay varios if's, hay un if que dice que si el jugador elige la opcion de ir al Norte, el juego termina pues se atopado con un oso polar. Entonces lo que pasa esque el bucle tiene al condicion de que mientras la variable booleana isRunning sea true corra, pero en ese if tengo puesto texto, para informar al jugador de lo que ha pasado, despues hay un getchar(); y DESPUES del getchar dice: isRunning=false; y lo que pasa esque cuando le dices al juego que quieres ir al norte, el juego se cierra, como si no ejecutara el getchar, y si funciona si pongo un system pause, no se porque, bueno aqui esta el codigo: Código
Título: Re: Ayuda con getchar Publicado por: Unbr0ken en 31 Diciembre 2011, 19:34 pm Hmmm... que código más desordenado.
La función getchar() no funciona porque no se limpió el salto de linea, entonces getchar() procede a leer ese salto de línea (ENTER), por tal, sigue el programa con la siguiente función, como no hay ninguna, simplemente se cierra. Remplaza entonces, el getchar() que "no te funciona" por este par de líneas: Código
Con esto, se "limpian" los saltos de línea y procede a esperar como de costumbre. Salud. Título: Re: Ayuda con getchar Publicado por: prometheus48 en 31 Diciembre 2011, 20:02 pm Muchas Gracias.!
Oye, respecto al código desordenado, a que te refieres?¿Qué hago mal? ¿Como podría mejorar? Gracias Título: Re: Ayuda con getchar Publicado por: BlackZeroX en 31 Diciembre 2011, 20:47 pm si estas en C++ usa
cin.get(); y para lo del getchar()... usa fflush() para forzar a stdin (no es recomendable...) Dulces Lunas!¡. Título: Re: Ayuda con getchar Publicado por: Unbr0ken en 31 Diciembre 2011, 21:11 pm Muchas Gracias.! Oye, respecto al código desordenado, a que te refieres?¿Qué hago mal? ¿Como podría mejorar? Gracias No haces nada mal, pero... hay demasiados saltos de línea fuera de lugar, combinas los métodos para saltar líneas sin sentido, déjate de eso, usa el \n o endl cuando sea realmente necesario. Hay partes del código bastante inútiles, como los parámetros que pides en la función main: Código
Ni si quiera los usas, sí... es la forma estándar de declarar un punto de entrada, pero si no vas a usar los parámetros que pides, sería más "limpio" dejarlo sin ellos. Usas muchísimos cout seguidos, cuando con un par estaría más que bien. Es muy inútil hacer tantas llamadas a una misma función cuando puedes hacer muchas menos con el mismo resultado. Ya por lo demás, con el tiempo te darás cuenta e irás mejorando poco a poco, por mi lado, no soy un experto en C++, llevo unas semanas de haberme iniciado, pero desde C# me traje muy buenos hábitos de programación. Título: Re: Ayuda con getchar Publicado por: prometheus48 en 31 Diciembre 2011, 21:27 pm Muchas Gracias!
Oye, con lo de cout, se puede utilizar solo una vez? Osea cout<<"kkkkkkkkkkkkk\nsssssssssssssssss\n"; ?? Ah, lo de los parametros los pongo porque son los estandares, y la verdad no se que significan.. ¿M epodrias decir para que sirven? Gracias! Feliz Año nuevo! Título: Re: Ayuda con getchar Publicado por: Unbr0ken en 31 Diciembre 2011, 21:36 pm Muchas Gracias! Oye, con lo de cout, se puede utilizar solo una vez? Osea cout<<"kkkkkkkkkkkkk\nsssssssssssssssss\n"; ?? Ah, lo de los parametros los pongo porque son los estandares, y la verdad no se que significan.. ¿M epodrias decir para que sirven? Gracias! Feliz Año nuevo! Por supuesto que se puede utilizar solo una vez, el único problema es que puede tornarse demasiado larga la línea a imprimir... pero como es sólo código escrito, no habrá problema alguno. Ahora, para que te saques todas las dudas de encima, lee este artículo sobre la función main (http://www.zator.com/Cpp/E4_4_4.htm). Feliz año igualmente ;)... P.D.: Lee el tema: |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html). |