Hallo liebe Community,
ich bin gerade dabei Ansi C zu erlernen. Programmierkenntnisse habe ich bisher nur in Vb.net sammeln können. Ich habe nun eine Aufgabe erhalten in der ich eine Hexziffer eingeben und diese dann als dezimal ausgeben soll. Bei eingabe die nicht zum Hexadezimalsystem gehören soll eine Fehlermeldung erscheinen.
Beispiel:
Bitte geben Sie eine Hex-Ziffer ein: F
Die Ziffer hat den Wert 15.
Bitte geben Sie eine Hex-Ziffer ein: 3
Die Ziffer hat den Wert 3.
als Hinweis habe ich folgendes erhalten:
Die Eingabe erfolgt durch das Einlesen einzelner ASCII-Zeichen, zweckmäßig mit getch().
ASCII-Werte: 'A' = 65; 'a' = 97; '0' = 48
Es sollen keine Funktionen aus <string.h> oder <ctype.h> wie z. B. isdigit()
oder isanum() verwendet werden!
So mein Problem besteht nun darin das getch() mir den Dezimalen ASCII Code der eingegebenen Ziffer zurückliefert. Wenn ich diesen dann natürlich in Hex oder dezimal umrechne kann ja nicht das richtige rauskommen.
Deshalb habe ich das ganze mit scanf("%x",&d) versucht. Nur wenn ich dort eine Ziffer auserhalb des Hex-Systems einlese komme ich in eine endlosschleife, was auch verständlich ist.
Eine if abfrage kann ich ja auch nicht einfügen da diese nach dem scanf erfolgen müsste (wo ich ja schon in der schleife bin).
Könnte mir bitte jemand helfen und mich auf den richtigen Weg lenken.
Danke im vorraus
Vertax
PS: Wie gesagt beschäftigen wir uns ausschließlich mit ANSI C, deshalb bitte nur antworten die auch nur innerhalb C funktionieren C++ darf ich leider nicht verwenden.
ich bin gerade dabei Ansi C zu erlernen. Programmierkenntnisse habe ich bisher nur in Vb.net sammeln können. Ich habe nun eine Aufgabe erhalten in der ich eine Hexziffer eingeben und diese dann als dezimal ausgeben soll. Bei eingabe die nicht zum Hexadezimalsystem gehören soll eine Fehlermeldung erscheinen.
Beispiel:
Bitte geben Sie eine Hex-Ziffer ein: F
Die Ziffer hat den Wert 15.
Bitte geben Sie eine Hex-Ziffer ein: 3
Die Ziffer hat den Wert 3.
als Hinweis habe ich folgendes erhalten:
Die Eingabe erfolgt durch das Einlesen einzelner ASCII-Zeichen, zweckmäßig mit getch().
ASCII-Werte: 'A' = 65; 'a' = 97; '0' = 48
Es sollen keine Funktionen aus <string.h> oder <ctype.h> wie z. B. isdigit()
oder isanum() verwendet werden!
So mein Problem besteht nun darin das getch() mir den Dezimalen ASCII Code der eingegebenen Ziffer zurückliefert. Wenn ich diesen dann natürlich in Hex oder dezimal umrechne kann ja nicht das richtige rauskommen.
Deshalb habe ich das ganze mit scanf("%x",&d) versucht. Nur wenn ich dort eine Ziffer auserhalb des Hex-Systems einlese komme ich in eine endlosschleife, was auch verständlich ist.
Eine if abfrage kann ich ja auch nicht einfügen da diese nach dem scanf erfolgen müsste (wo ich ja schon in der schleife bin).
Könnte mir bitte jemand helfen und mich auf den richtigen Weg lenken.
Danke im vorraus
Vertax
PS: Wie gesagt beschäftigen wir uns ausschließlich mit ANSI C, deshalb bitte nur antworten die auch nur innerhalb C funktionieren C++ darf ich leider nicht verwenden.
Comment