// Beispiel für Funktionen: Einlesen einer Hexzahl
//
// Aufruf: hexinp
//
// Klaus Kusche, 2011

#include <iostream>
#include <cstdlib>

using namespace std;

int hexInput();

int hexInput()
{
  int pos;
  int zahl = 0;
  char eingabe[82];
  char c;

  cin >> eingabe;
  
  for (pos = 0; eingabe[pos] != '\0'; ++pos) {
    c = eingabe[pos];
    if ((c >= '0') && (c <= '9')) {
      zahl = zahl * 16 + (c - '0');
    } else if  ((c >= 'A') && (c <= 'F')) {
      zahl = zahl * 16 + (c - 'A' + 10);
    } else if  ((c >= 'a') && (c <= 'f')) {
      zahl = zahl * 16 + (c - 'a' + 10);
    } else {
      cout << "Ungültiges Zeichen " << c << endl;
      return 0;
    }
  }

  return zahl;
}

int main(void)
{
  int h;
  
  do {
    cout << "Hexzahl eingeben: ";
    h = hexInput();
    cout << h << endl;
  } while (h != 0);

  exit(EXIT_SUCCESS);
}
