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.


Log in to reply