PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hexadezimalwerte


ZeroJump
29.08.2002, 11:33
Hallo,

ich bin ein verwöhnter Java-Programmierer, der die sehr detaillierte Klassen-Dokumentation gewohnt ist. Gibt es so etwas auch für C++?

Ich suche nämlich eine Funktion, die mir einen IntegerWert in einen Hexadezimal-STRING wandelt. Oder zumindest in ein Array aus Chars. Dann könnte ich ja daraus nen String machen.

Oder gibt es eine ganz andere Lösung? Wichtig ist, dass am Schluss ein String rauskommt.

Vielen Dank, ZeroJump


Felix Kaiser
29.08.2002, 14:12
Beim C++ Builder werden die Delphi Routinen mitgeschleppt, d.h. man kann ganz bequem IntToHex benutzen. Man übergibt ein int und bekommt einen AnsiString.

Ansonsten müsste man über Textformatierung arbeiten, mit %x kann man Hexwerte wiedergeben, ich weiß allerdings nicht, wie man diese Ergebnisse dann in eine Var bekommt.

Man kann sich auch ganz leicht selber was basteln ;)

Format C:
29.08.2002, 15:42
char Buffer[20]="";


sprintf( Buffer, "%x", Variable); ?

ZeroJump
30.08.2002, 14:52
Da merkt man doch, dass ich totaler Newbie bin, was C++ angeht. Aber ich hab mir selber was gebastelt, das funktioniert hervorragend. :-)) Bin ich stolz drauf.

Nochwas:

Bei einem Konsolen-Programm habe ich zur Eingabe einer Text-Zeile cin.getline genutzt. Mit dem abschließendem ENTER, also der Eingabe von '\n' wird dann die Zeile eingelesen. Jetzt ist folgendes: Wenn ich das Programm unter Win2k kompiliere muss ich 2x Enter drücken, bei Win98 klappts beim ersten mal.

Woran liegt das?

Format C:
30.08.2002, 14:55
WIN 2000 verwendet UNICODE, WIN 98 hat noch den alten ANSI.

d.h. ein Zeichen ist 2 Byte groß, getline liest aber nur 1 Byte ein.

Jan Krüger
30.08.2002, 15:51
am einfachsten, weil verbreitetsten, dürfte das über IO-streams gehen...
so in etwa: (weiß nicht genau, die c++-spezifischen erweiterungen hab ich mir noch nicht so genau angesehen ;))

#include <iostream.h>

char foo[20];

cin >> foo;

Malte 2
30.08.2002, 17:13
DAS Problem bei cin für die Eingabe von Strings ist allerdings, dass man mit dem normalen cin nur einzelne Wörter eingeben kann. Wenn man zum Beispiel eingibt "Hallo Leute" wird nur "Hallo" in den String gepackt, weil cin bei Leerzeichen abschneidet.

Bolle
30.08.2002, 20:36
... deshalb würde ich die methode getline() benutzen.
das sieht dann ungefähr so aus:

cin.getline(foo, 200, '\n');

dann liest er bis '\n' und maximal 200 zeichen