transforming decimal integer to hexadecimal, to octal and back to decimal

Bjarne Stroustrup “Programming Principles and Practice Using C++”
Chapter 11 Drill 8
Using std_lib_facilities.h by Bjarne Stroustrup.

[code language=”cpp”]
// Philipp Siedler
// Bjarne Stroustrup’s PPP
// Chapter 11 Drill 8

#include "std_lib_facilities.h"

void set_age(int& _a, int& _ao, int& _ah, int& _ah1) {
while (true) {
cout << "enter your age" << endl;
if (cin >> _a >> oct >> _ao >> hex >> _ah >> _ah1) {
break;
}
else {
cout << "enter intger age" << endl;
cin.clear();
}
}
}

int main()
try
{
int age;
int age_oct;
int age_hex;
int age_hex1;

set_age(age, age_oct, age_hex, age_hex1);

int width = 12;
cout << setw(width) << "decimal\t" << age << endl;
cout << setw(width) << "octadecimal\t" << age_oct << endl;
cout << setw(width) << "hexadecimal\t" << age_hex << endl;
cout << setw(width) << "hexadecimal\t" << age_hex1 << endl;

keep_window_open();
}
catch (runtime_error e) {
cout << e.what() << endl;
keep_window_open();
}
catch (…) {
cout << "Exiting" << endl;
keep_window_open();
}
[/code]

Output:
    decimal     28
hexadecimal     1c
octadecimal     34
Please enter a character to exit

Leave a Reply