Título: Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");... Publicado por: Sauw en 8 Diciembre 2010, 19:30 pm Quizás os acordaréis de mi de otro tema... bueno pues como tengo nuevas dudas y he cambiado por completo el sistema de mi calculadora (ahora será versión 2.0) he decidido crear un nuevo tema.
Sí, estoy trabajando en una calculadora, a ver que os parece: Código: #include <stdlib.h> Al menu principal no le hagais caso, solo funciona de momento las "operaciones básicas" (aunque todo lo demás lo hice en la versión anterior de la calculadora, solo que ahora estoy cambiando muchísimas cosas, ahora uso cout y cin en vez de printf i scanf etc. así que decidí reescribirlo) Funciona así: Te pide cuantos números quieres operar y entonces escribes, por ejemplo si elegiste 3: 105 - 15 / 2 i así te funcionaría, aunque tienes que apretar intro cada vez que escribes algo obviamente (sino no tengo ni idea de como hacerlo, pero supongo que será dificilísimo para mi nivel jajajaja) Pero si calculas varias veces sin cerrar la calculadora una vez vuelves a calcular hay errores y empiezan a salir cosas raras, no sé muy bien porque pero se sulocionaría seguramente si supiera como igualar todas las variables a 0 a ver, podría hacerlo una por una pero me parece que tiene que haber alguna forma más rápida de "resetearlas" todas y esa es mi primera y más importante pregunta. También he decidido dejar de usar Código: system("pause"); Código: getchar(); Pero no conozco por ahora ninguna alternativa a Código: system("cls"); Y bueno aparte de eso echadle un vistazo a ver que tendría que cambiar o que no os convence... Pero lo que más me interesa saber es lo de devolver a las variables el valor "0" sin hacerlo manualmente De antemano, gracias. Título: Re: Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");... Publicado por: Beakman en 8 Diciembre 2010, 20:38 pm Tu programa solo me funciono una vez, puedo hacer una cuenta y después no me deja hacer mas nada, a si que no se de que variables hablas cuando decís "poner todo a 0".
Faltaba la opción salir. Lo de system( "cls" ); podes reemplazarlo por varios saltos de linea ( tampoco muchos! ), para mi queda mejor asi, sin limpiar la pantalla. Porque "cls" es para windows no mas. Y después tendrías que usar mas funciones, dividir mas el código para que sea mas facil arreglarlo ( funcion resta, funcion suma, etc ). Y me parece que en vez de que el usuario ingrese " 5+5 " que se le pregunte en un menú que cuenta quiere hacer. Porque si se ingresa " 5 + 6 * 2 " por ejemplo, el programa lo resuelve de izquierda a derecha, cuando tendría que resolver la multiplicación primero, haciendo el menú te ahorras tener que dividir la cuenta. Título: Re: Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");... Publicado por: Sauw en 8 Diciembre 2010, 21:45 pm Eso lo hice precisamente por que mis amigos querían que se pudiera de golpe hacer sumas, restas, multiplicaciones y divisiones y que fuera simplemente escribiendo el signo...
Mi versión anterior era con funciones específicas pero claro solo podías hacer un tipo de operación cada vez, si querías sumar solo podías sumar no podías mezclar operaciones diferentes. Pero bueno, sí... yo quiero darles a todas las variables el valor de 0 cada vez que se inicia el menú Quiero algo así como: Código: Todaslasvaribles=0; Título: Re: Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");... Publicado por: Beakman en 8 Diciembre 2010, 21:56 pm ah oka.
Podrías ponerlas así: Código: operacion = opcion[ 0 ] = opcion[ 1 ] = i = resultado = menu[ 0 ] = menu[ 1 ] = 0; Título: Re: Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");... Publicado por: Sauw en 9 Diciembre 2010, 07:30 am Ok gracias haré una función para ello 8D
Título: Re: Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");... Publicado por: Littlehorse en 9 Diciembre 2010, 19:38 pm Puedes utilizar compilación condicional en caso que quieras que limpiar la consola tanto en *nix como en Windows utilizando system:
Código
Igualmente utilizar system no es lo mas adecuado. Indefectiblemente algún día te tendrás que quitar el vicio, pero lamentablemente no hay alternativa estándar para limpiar la pantalla dado que dichas tareas solo se pueden realizar con funciones especificas de cada sistema. Es decir, tendrías que tirar de las APIs de cada sistema para hacer las funciones correspondientes y luego llamarlas dependiendo cual sea el sistema operativo respectivo. Saludos |