ive created this currency conversion program
which converts the currency then adds commission, but its got a error saying undefined symbol true in function main
can someone help me ive only got the one error with it.

``````#include <iostream.h>

int choice;
double pounds;
double USdollar;
double Euro;
double interest;

int main(){
cout << "Select what you want to convert." <<endl;
cout << "1.Pounds to US dollar." <<endl;
cout << "2.Pounds to Euro." << endl;
cin >> choice;

while (true){

//converts pounds to US dollars
if (choice == 1){
cout << "Please enter amount you want to convert." <<endl;
cin >> pounds;
USdollar = pounds * 0.5; //change the conversion rate
cout << USdollar<< endl;
if (pounds <= 1000){
cout << "Interest rate is 1% of this amount." <<endl;
interest = USdollar + (USdollar * 0.01);
cout << interest << endl;
}
if (pounds > 1000){
cout << "Interest rate is 3% of this amount." <<endl;
interest = USdollar + (USdollar * 0.03);
cout << interest << endl;
}break;
}
//converts pounds to euro
if (choice == 2){
cout << "Please enter amount you want to convert." <<endl;
cin >> pounds;
Euro = pounds * 0.3; //change the conversion rate
cout << Euro<< endl;
if (pounds <= 1000){
cout << "Interest rate is 1% of this amount." <<endl;
interest = Euro + (Euro * 0.01);
cout << interest << endl;
}
if (pounds > 1000){
cout << "Interest rate is 3% of this amount." <<endl;
interest = Euro + (Euro * 0.03);
cout << interest << endl;
}break;
}
if (choice != 1 && choice !=2){
cout <<"Invalid choice. Enter again."<<endl;
}
}return 0;
}``````

true has not been defined. Define it.

It works fine on my compiler :-S
Try declaring a boolean variable and have that in the while loop

``````bool keepLooping = true;

...

while (keepLooping)
{
...
}``````

Or simply use the forever loop

``````for (;;)
{
...
}``````

thankyou

``#include <iostream.h>``

iostream.h is outdated - use `iostream` instead:
http://www.devx.com/tips/Tip/14447
(you also either need to put `using namespace std;` after the inclusion of iostream, or place std:: in front of each Standard Template Library object)

My suspection of "undefined symbol true" is that the compiler is in 'C' mode or something... perhaps in the configuration or something you can change it. In any case, it works fine on mine (gcc).

Try declaring a boolean variable and have that in the while loop
Code:

``````bool keepLooping = true;

...

while (keepLooping)
{
... }``````

What an awful way of doing it. Firstly, if the compiler doesn't recognize `true` in the while loop, what makes you think it will recognize it in a variable assignment? Secondly, it's much shorter to simply create a while loop with '1' like the following:

``````while(1) {
...
}``````

That should work for ya.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.