I am writing a converter program which converts different values from the imperial system to the international system as well as currency. I want to loop the program so that it does not just do one conversion. Here is my code:
#include "std_lib_facilities.h" #include "stdio.h" int a = 0; int b = 0; int c = 0; void money() { cout << "This will convert CAD to either USD or EUR\n"; cout << "Please input USD or EUR followed by an enter keystroke for conversion\n"; string a; while(cin >> a){ if( a == "USD"){ cout << "If you would like to convert USD into CAD, enter 1.\n"; cout << "If you would like to convert CAD into USD, enter 2.\n"; int x; cin >> x; if( x == 1){ cout << "Please enter the amount you wish to convert.\n"; double j; cin >> j; double k = j*1.29; cout << j << "USD is " << k << "CAD.\n"; } if ( x == 2){ cout << "Please enter the amount you wish to convert.\n"; double o; cin >> o; double p = o*0.77; cout << o << "CAD is " << p << "USD.\n"; } } if( a == "EUR"){ cout << "If you would like to convert EUR into CAD, enter 1.\n"; cout << "If you would like to convert CAD into EUR, enter 2.\n"; int y; cin >> y; if(y == 1){ cout << "Please enter the amount you wish to convert.\n"; double g; cin >> g; double h = g*1.46; cout << g << "EUR is " << h << "CAD.\n"; } if(y == 2){ cout << "Please enter the amount you wish to convert.\n"; double z; cin >> z; double x = z*0.69; cout << z << "CAD is " << x << "EUR.\n"; } } } } void weight() { double amount; cout << "This will convert pounds to kilograms.\n"; cout << "Please input the amount you wish to convert.\n"; cin >> amount; cout << "Would you like to convert " << amount << "kg to lb or the reverse?\n"; cout << "To convert kg to lb, please press 1. To convert lb to kg please press 2.\n"; int q; while(cin >> q){ if( q == 1){ double kg = amount*2.2; cout << amount << "kg is " << kg << "lb.\n"; } if( q == 2){ double lb = amount*0.5; cout << amount << "lb is " << lb << "kg.\n"; } } } void temperature() // t to f and f to t { } void setup() { cout << "Please enter either c,w or t for the corresponding conversions.\n"; cout << "(Where c is for currency, w is for weight, and t is for temperature.\n"; string a; while ( cin >> a){ if( a == "c"){ money(); } if( a == "w"){ weight(); } if( a == "t"){ temperature(); } } } int main() // loop it to make more than one conversion { cout << "Welcome to the ultimate converter app.\n"; setup(); cout << "Would you like to perform another conversion? (Y/N)\n"; string y; while(cin >> y){ if( y == "Y"){ setup(); } if( y == "N"){ exit (EXIT_FAILURE); } } return 0; } The program does work as expected but it does not loop at the end. Afer I enter the last command it just freezes, as in return 0 freezes.
I would appreciate any help thanks.