unsigned int in char umwandeln
-
Hi, ich will dass die Zahl aus dem Int_Array in Zahl geschrieben wird, bei mir gibt der aber immer irgend ne andere Zahl aus ich glaub den ASCII-Code will aber die richtige Zahl. Hier der Code:
char Zahl[5]; sprintf(Zahl, "%u", Int_Array[3]); cout << endl << Zahl << endl;
THX schonma im vorraus.
-
Dieser Thread wurde von Moderator/in GPC aus dem Forum Andere GUIs - Qt, GTK+, wxWidgets in das Forum C (C89 und C99) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Folgendes Minimalbeispiel lief bei mir ohne Probleme.
int main() { char zahl[5]; unsigned int some_int=24; std::sprintf(zahl, "%u", some_int); std::cout << zahl; }
Der Fehler muss bei dir woanders liegen. Poste einmal den ganzen Code, sofern er nicht zu gross ist.
P.S. sprintf ist eine C-Funktion. Du kannst den unsigned int mithilfe eines stringstream in einen string umwandeln, oder auch direkt auf cout ausgeben.
-
void IP_v4() { unsigned int Block[3]; char IP[14]; strcpy(IP, ""); for (int a = 0; a < 256; a++) { Block[0] = a; for (int b = 0; b < 256; b++) { Block[1] = b; for (int c = 0; c < 256; c++) { Block[2] = c; for (int d = 0; d < 256; d++) { Block[3] = d; for (int x = 0; x < 4; x++) { if (Block[x] < 10 ) { strcat(IP, "00"); } else { if (Block[x] < 100) { strcat(IP, "0"); } } char Zahl[5]; sprintf(Zahl, "%u", Block[x]); cout << endl << Zahl << endl; system("pause"); strcat(IP, Zahl); if (x < 3) { strcat(IP, "."); } cout << IP << endl; } } } } } }
-
Bei der deklaration eines Arrays gibt man in den eckigen Klammern nicht den letzten Index, sondern die Größe an. Du hast in deinem Programm ein Array mit 3 Elementen deklariert. Folglich ist block[3] kein gültiger Index mehr.