Hola,queria pediros ayuda por un problema con un ciclo en un programa de C++.
El programa es un conversor de temperaturas,el problema está en que cuando inserto una letra,en vez de un valor numerico,el programa se cierra pero esto no es todo...si antes de poner la letra,pongo un numero y le doy a enter y luego inserto la letra,entra en un ciclo que no para de repetirse...por favor necesito ayuda V_V estoy aprendiendo a programar en C++ tengo 15 y esto me está frustrando xD!
El problema creo que es por el Do}{While, porque he probado sin ellos y si insertas una letra el programa mismo te dice que no es un digito valido,lo malo,es que cuando está On el ciclo de While,esa informacion se repite hasta la saciedad y nunca se puede parar...
Aqui os dejo el link del programa:
http://www.mediafire.com/download.php?mozmz2wjnmi Está escrito y compilado en Visual C++ 6.0Y Aqui os dejo el codigo fuente:
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
float Celsius,Faren,Kelvin;
int x,y;
using std::cout;
using std::cin;
/*Aqui estan representadas todas las variables y el bucle while junto a los archivos para el preprocesador*/
system("COLOR 0A");
do{
cout <<" --------------------------------------------------\n";
cout <<" | CONVERSOR DE GRADOS V.4 BY JOSELETE |\n";
cout <<" --------------------------------------------------\n";
//Es mi conversor,un programa de Joselete para ayudar a la gente en apuros con las temperaturas ^^
cout <<" ---------------------------------------------------- \n";
cout <<" |Inserte 0 si quiere pasar de Farenheit a Celsius |\n";
cout <<" |Inserte 1 si quiere pasar de Celsius a Farenheit |\n";
cout <<" |Inserte 2 si quiere pasar de Celsius a Kelvin |\n";
cout <<" |Inserte 3 si quiere pasar de Kelvin a Celsius |\n";
cout <<" |Inserte 5 si quiere pasar de Kelvin a Farenheit |\n";
cout <<" |Inserte 6 si quiere tener informacion sobre mi |\n";
cout <<" |Inserte 7 si lo que desea es salir |\n";
cout <<" ---------------------------------------------------- \n";
cin >>x;
switch(x)
{
case 0:
cout <<"\nInserte la temperatura en grados Farenheit\n\n";//inserta la temperatura
cin >>Faren;//lo reconoce en pantalla
Celsius = ( Faren - 32 ) * 5/9;//formula de Farenheit a Celsius
cout <<"\nSu temperatura en grados celsius es: \t" <<Celsius <<"\n\n";//En esta linea se muestra el resultado
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 1:
cout <<"\nInserte la temperatura en grados Celsius\n\n";//inserta la temperatura
cin >>Celsius;//lo reconoce en pantalla
Faren = Celsius * 9/5 + 32;//formula de Celsius a Farenheit
cout <<"\nSu temperatura en grados Farenheit es: \t" <<Faren <<"\n\n"; //En esta linea se muestra el resultado
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 2:
cout <<"\nInserte la temperatura en grados Celsius\n\n";//inserta la temperatura
cin >>Celsius;//lo reconoce en pantalla
Kelvin = Celsius + 273.15;//formula de celsius a Kelvin
cout <<"\nSu temperatura en grados Kelvin es: \t" <<Kelvin <<"\n\n";//En esta linea se muestra el resultado
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 3:
cout <<"\nInserte la temperatura en grados Kelvin\n\n";//inserta la temperatura
cin >>Kelvin;//lo reconoce en pantalla
Celsius = Kelvin - 273.15;//formula de Kelvin a Celsius
cout <<"\nSu temperatura en grados Celsius es: \t" <<Celsius <<"\n\n";//En esta linea se muestra el resultado
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 4:
cout <<"\nInserte la temperatura en grados Farenheit\n\n";//inserta la temperatura
cin >>Faren;//lo reconoce en pantalla
Kelvin = (Faren + 459.67) / 1.8; //formula de Farenheit a Kelvin
cout <<"\nSu temperatura en grados Kelvin es: \t" <<Kelvin <<"\n\n";//En esta linea se muestra el resultado
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 5:
cout <<"\nInserte la temperatura en grados Kelvin\n\n";//inserta la temperatura
cin >>Kelvin;//lo reconoce en pantalla
Faren = Kelvin * 1.8 - 459.67;//formula de Kelvin a Farenheit
cout <<"\nSu temperatura en grados Farenheit es: \t" <<Faren <<"\n\n"; //En esta linea se muestra el resultado
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 6:
cout <<"\nHola,me llamo Jose Angel Gonzalez y este es uno de mis programas acabados\n";
cout <<"\nSoy estudiante de 4 de ESO en el Instituto San Jaime Apostol (Moncada)";
cout <<"\nTengo 15 a\xa4os y mi sue\xa4o es ser programador,si quieres contactar conmigo\n";
cout <<"\nEste es mi msn: Joselete-11@hotmail.com.Gracias por usar mi programa\n";
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
case 7:
exit(0);
break;
default: //SI SE PRESIONA OTRO NUMERO DIFERENTE
printf("ESE NUMERO NO ESTA PERMITIDO!HUM!\n");
cout <<"Pulse una tecla para continuar\n";
getch();
system("cls");
break;
}
}while(x!=y);
getch();
return 0;
}
Lo siento si este tema no va aquí pero es que no me sé guiar mucho por estos foros