Linus Torvalds: Java A Horrible Language



  • In welcher hinsicht ist printf denn besser?



  • es fängt damit an, dass deine Version gar keine formatstrings unterstützt. Qausi DAS Feature von printf.



  • Bau es halt ein, das ist ja nur eine primitive, beispielhafte Implementierung. -.-



  • 314159265358979 schrieb:

    Bau es halt ein, das ist ja nur eine primitive, beispielhafte Implementierung. -.-

    Also doch nicht besser als printf.
    Gut das wir das jetzt erkannt haben.



  • printf("%%", std::setprecision(10), 3.14159265358979);
    


  • Dann machen wir mal weiter, dass printf format strings kann, die die c++streams gar nicht abbilden können. Wie zum Beispiel "%5.2f"



  • Keine Ahnung wie die printf Formatstrings funktionieren, hab die noch nie gebraucht. Aber wie gesagt kann es nicht so schwer sein, die einzubauen.



  • otze schrieb:

    Dann machen wir mal weiter, dass printf format strings kann, die die c++streams gar nicht abbilden können. Wie zum Beispiel "%5.2f"

    printf("%%%%\n", std::setw(5), std::fixed, std::setprecision(2), d);
    


  • Auch wenns nicht schön aussieht, ihr vergleicht immer noch einen Ansatz (!!!) mit einer fertig ausgeklügelten Formatierungsfunktion.



  • Weil du behauptest, dein Ansatz sei besser (!!!) als eine fertig ausgeklügelte Formatierungsfunktion...



  • joa.. schrieb:

    Weil du behauptest, dein Ansatz sei besser (!!!) als eine fertig ausgeklügelte Formatierungsfunktion...

    Du brauchst dich nicht wundern: Es ist vollkommen normal, dass sich PI mehrmals im selben Thread widerspricht!



  • Nein, nein. Ich wundere mich keineswegs. Man muss es ihm nur sagen, damit er es vielleicht irgendwann lernt und sein Können auch richtig einsetzen kann.



  • Ne, tu ich nich. Aber da mir das sowieso niemand glauben wird, könnt ihr den Thread zumachen.

    Cheers.



  • void printf(char const* format)
    {
        std::cout << format;
    }
    
    template <typename Head, typename... Tail>
    void printf(char const* format, Head const& head, Tail const&... tail)
    {
        while(*str && *str != '%')
            std::cout << *str++;
    
        if(!(*str))
            return;
    
        switch(*(++str))
        {
        case '%':
            std::cout << '%';
            printf(++str, head, tail...);
            break;
    
        case 'x':
            std::cout << std::hex << head << std::dec;
            printf(str, tail...);
            break;
    
        default:
            std::cout << head;
            printf(str, tail...);
        }
    }
    

    Das baut man so ein. Weitere Nachteile wenn sich jemand da lange genug rangesetzt und alles implementiert hat? Was ist dann noch schlechter?



  • Ethon schrieb:

    Was ist dann noch schlechter?

    Das es hier nicht um PIs Selbstdarstellungsdrang gehen sollte?



  • rüdiger schrieb:

    otze schrieb:

    Dann machen wir mal weiter, dass printf format strings kann, die die c++streams gar nicht abbilden können. Wie zum Beispiel "%5.2f"

    printf("%%%%\n", std::setw(5), std::fixed, std::setprecision(2), d);
    

    Das letztere sieht aus wie ein Aufsatz im Vgl zum ersteren...
    Warum sollte jemand eine ganze zeile mit :: und hurxmurx ausschreiben wollen wenn "%5.2f" auch passt..



  • 314159265358979 schrieb:

    Es ist besser als printf.

    ...

    314159265358979 schrieb:

    Bau es halt ein, das ist ja nur eine primitive, beispielhafte Implementierung. -.-

    🙄

    314159265358979 schrieb:

    printf("%%", std::setprecision(10), 3.14159265358979);
    

    🙄 🙄

    314159265358979 schrieb:

    Keine Ahnung wie die printf Formatstrings funktionieren, hab die noch nie gebraucht. Aber wie gesagt kann es nicht so schwer sein, die einzubauen.

    🙄 🙄 🙄



  • Ich erklär jetzt einfach nichts mehr. Offenbar hat Ethon ja verstanden, wie es gemeint war, was mich zu dem Schluss führt, dass ihr meine Aussagen absichtlich wortwörtlich so interpretiert, wie sie da stehen. (Sprich, mit Absicht nicht das lest, was zwischen den Zeilen steht.)

    Würde ich nun erklären, dann hätte das den Effekt, dass
    #1 - dasselbe bei meinen Erklärungen nochmal auftritt
    #2 - niemand mir glaub, wie ich es gemeint habe
    #3 - der Thread eskaliert und ich sinnloserweise gebannt werde, weil andere mich nicht mögen.

    Wobei ich eigentlich nach deinen letzten Posts gedacht habe, du würdest dir Mühe geben, genau das rauszulesen, was ich meine, hustbaer. Da hab ich mich wohl getäuscht.



  • 314159265358979 schrieb:

    Wobei ich eigentlich nach deinen letzten Posts gedacht habe, du würdest dir Mühe geben, genau das rauszulesen, was ich meine, hustbaer. Da hab ich mich wohl getäuscht.

    Ach das ist schon wieder deine typische Arroganz...

    Nein, ich gebe mir nicht Mühe irgendwas so verstehen zu können dass du eventuell keinen Mist geschrieben haben könntest.

    Schreib so dass man dich versteht.

    Und hör auf mit deinem ewigen "meins ist aber besser" Scheiss, die Leier kann keiner mehr hören.

    Wenn du meinst dass eine Template-basierte Lösung besser ist als klassisches printf, dann schreib das. Oder schreib Boost.Format ist besser, anstatt wieder irgendwelchen halbgaren Code zu posten, mit dem du uns unwürdigem Gewürm mal zeigen willst "wie mans macht". Aber nur als Beispiel.

    Sorry, muss grad kotzen gehen, melde mich dann später nochmal.

    EDIT: aus gegebenem Anlass: die "ICH HAB RECHT" Leier interessiert auch keinen mehr.



  • LOL ihr streitet euch um printf. Seit ihr 1978 stehen geblieben, es gibt mittlerweile wichtigere "Sprachfeatures".


Anmelden zum Antworten