Probleme mit der konvertierung nach unsigned char
-
Guten Abend,
ich verzweifle bald, seit Stunden versuche ich eine Funktion zu schreiben die dafür sorgt das ich wie in dem Beispiel hier:
unsigned char in[8] = { 0x33,0x22,0x11,0x00,0xdd,0xcc,0xbb,0xaa };praktisch meinen unsigned char aus einer normalen Zeichenkette bekomme die etwa so wie hier im funktionsheader aussieht also eine normale char ist.
int XXXXXX::plain2bc(char *plain, ...)Eigentlich nur eine konvertierung zwischen char und unsigned char, ich dachte das wäre leicht. Aber da habe ich mich wohl verschätzt.
Ich bitte euch um Hilfe um heute Nacht noch ein Auge zuzubekommen

Vielen Dank im Voraus
Iben
-
Sorry, Verstehe die Frage nicht.
Kurt
-
ich will aus einer char * eine unsigned char machen.
-
Iben schrieb:
ich will aus einer char * eine unsigned char machen.
Willst du das wirklich?
char * p; /* ... */ unsigned char c = reinterpret_cast<unsigned char>(p);
-
Eher so:
void test (char* charArray) { return; } int _tmain(int argc, _TCHAR* argv[]) { unsigned char ucharArray[] = {0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7 }; test(reinterpret_cast<char*>(ucharArray)); return 0; }
-
Es will einfach nicht klappen, das Programm stürzt ab. Also ich erkläre das jetzt noch einmal so.
Ich arbeite an einem Kryptoalgo ich will diesen in C++ umsetzen, ich habe eine Verschlüsselungsfunktion, diese bekommt den Klartext in Form einer Variable:
unsigned char in[8] = { 0x33,0x22,0x11,0x00,0xdd,0xcc,0xbb,0xaa };Das ist die Variable mit dem "Klartext" gleich dazu (daher auch der Name in).
So jetzt will ich aber das ich etwas in die Tasten hämmern kann und dies dann auch zu einer 'unsigned char xy[8] wird, warum 8 ? Das ist Aufgrund des Algos so.
Wenn ich nun mehr als [8] schreibe dann muss das halt portionsweiße machen, das ist aber kein Problem das kriege ich hin nur wie bekomme ich meine Sachen von der Tastatur als unsigned char ???
Ich arbeite mit VS .Net 2003 Prof. nur so zur Info, da bei mir die Iostream libs nicht gefunden werden aus mir unerklärlichen Gründen.
Stefan
-
da bei mir die Iostream libs nicht gefunden werden aus mir unerklärlichen Gründen.
Reinstall oder Fehler bei dir. Eventuell hast du auch die Include-Pfade versetzt - an den Einstellungen herumgespielt?
Ansonsten:
#include <iostream> using namesapce std; int main () { char xy [8]; cout << "Maximal 8 Zeichen eingeben: " << endl; cin.getline(xy,8); // nun ist deine tastatur-eingabe drinnen toller_algo(xy); }MfG SideWinder
-
dann muss das halt portionsweiße machen, das ist aber kein Problem das kriege ich hin nur wie bekomme ich meine Sachen von der Tastatur als unsigned char ???
-
#include <iostream> using namespace std; void toller_algo( const unsigned char* in) { // in verschlüsseln } int main () { char xy [8]; cout << "Maximal 8 Zeichen eingeben: " << endl; cin.getline(xy,8); // nun ist deine tastatur-eingabe drinnen toller_algo( reinterpret_cast<const unsigned char*>( xy)); }
-
toller_algo( reinterpret_cast<unsigned char*>( xy));Non-const zu const Umwandlungen sollte man vom Compiler immer implizit erledigen lassen.