Ausgabe von ASCII und Integer schlägt fehl!



  • Hallo zusammen.
    Ich habe hier ein Programm, was mir ASCII Zeichen umwandelt bzw ganz normale integer Zahlen in die dementsprechenden ASCII werte verwandelt. Das funzt auch wunderbar. jetzt wollte ich das noch ein wenig erweitern, sodass der entsprechende Hexcode auch noch ausgegeben wird, aber dass funzt net.

    Die Ausgabe soll ca so aussehen:

    33 = (ASCIIZEICHEN) = (HEXZAHL)
    33 = ! = 21

    So, mein Problem ist jetzt, dass wenn ich die noch in Hex umwandeln lasse, ich später auch die ganz normalen int Zahlen als hex ausgegeben bekomme. Wie kanni ch das verhindern? Ich hab schon extra den Typecast (int) davor gesetzt, aber bringt nüx. Hier der Code:

    for ( int i = 33; i <= 255; i++ )
    {
         if ( i == 255 )
         cout << i << "=" << (char) i <<"\t";	
         else
         {
              cout << (int) i << "=" << (char) i << "=" << hex << i << "\t"; i++;
    	 cout << (int) i << "=" << (char) i << "=" << hex << i << "\t"; i++;
    	 cout << (int) i << "=" << (char) i << "=" << hex << i << "\t";
         }
    }
    


  • nimm printf:

    for (int i = 33; i <= 255; i++) 
            printf ("%d = %c = %02x\n", i,i,i);
    


  • net schrieb:

    nimm printf:

    Kannst du einen vernünftigen Grund dafür nennen?

    MSS-Software, es gibt nicht nur hex, sondern auch dec.



  • nimm dec:

    for (int i = 33; i < 255; ++i) {
      cout << dec << i << "=" << static_cast<char>(i) << "=" << hex << i << "\t";
    }
    cout << dec << 255 << "=" << static_cast<char>(255) << "=" << hex << 255 << "\t";
    


  • MFK schrieb:

    net schrieb:

    nimm printf:

    Kannst du einen vernünftigen Grund dafür nennen?

    - der code ist übersichtlicher
    - man tippt sich nicht die finger wund
    - code compiliert auch unter C
    noch was?



  • nicht streiten *zwinka*

    geht doch nur um ein bissl quelltext



  • net schrieb:

    - der code ist übersichtlicher

    Das ist Ansichtssache. Ich bin schnell genervt, wenn ich die Prozentzeichen und die Parameter nachzählen und zuordnen muss.

    net schrieb:

    man tippt sich nicht die finger wund

    Die Lösung mit weniger Zeichen ist die bessere? Bist du auch ein Freund von einbuchstabigen Bezeichnern?

    - code compiliert auch unter C

    War das eine Bedingung? Oder geht es um Kompatibilität um jeden Preis? Schreibst du bei malloc einen cast davor, damit der Code auch unter C++ kompilierbar ist?

    noch was?

    Ja. Mit printf kann man sich so prima in den Fuß schießen.


Anmelden zum Antworten