Wie programmiere ich eine einfache Addition in C++?



  • Und in C++ nutzt man printf gar nicht mehr. Das ist auch nichts, was man am Anfang Mal nutzen sollte, um es später wegzulassen, das sollte man einfach von Vornerein nicht nehmen.

    Alternative wurde schon gezeigt, man nutzt einfach cout. Und das Tolle daran ist, dass cout superschlau ist und die Typen alle automatisch erkennt, sodass man kein %d oder sonst was mehr braucht. Dafür muss man jetzt << benutzen und die Reihenfolge der Ausgabe entspricht der Reihenfolge, in der die Teilstrings/Variablen in cout "hineingeschoben" worden sind.



  • Eisflamme schrieb:

    Und das Tolle daran ist, dass cout superschlau ist

    Besser gesagt: Typsicher



  • Ja, das ist der Fachausdruck für das, was cout so superschlau macht. Aber ich wollte OP doch enthusiastisch für cout machen. Da muss man doch auch Mal Begriffe wie "toll", "superschlau" usw. verwenden!



  • Formatierte Ausgabe C++:
    http://www.hs-augsburg.de/~flo1985/Info/inf3.pdf

    Erwähnt das auch in dem Zusammenhang. Denn man sieht ja immer wieder C++ Quelltexte, die deshalb auf printf() zurückgreifen weil denen das verlinkte nicht bekannt ist.



  • Für Freunde von printf habe ich heute etwas ganz besonderes im Angebot - nur heute zum halben Preis!

    void print(const char* str)
    {
        std::cout << str;
    }
    
    template <typename Head, typename... Tail>
    void print(const char* str, Head&& head, Tail&&... tail)
    {
        while(*str != '%')
            std::cout << *str++;
        std::cout << head;
    
        print(++str, std::forward<Tail>(tail)...);
    }
    


  • darknight11 schrieb:

    was ist einfacher zu verstehen für ein blutigen Angänger wie mich?

    einEN blutigen Anfaenger. Es heisst EINEN!!!!



  • prinf ist ja dazu da einen einen text auszugeben. zb. printf("hallo"); (dass funktiionier auch! verbessert mich wenn ich absoluten mist hier verzapfe!

    Ja, das funktioniert auch, das liegt aber daran, dass das einfach C ist. Du kannst ja mit den meisten Compilern beide Sprachen programmieren, man sollte sich aber bewusst sein, in welchem Bereich man sich befindet. Und printf ist in C einzuordnen. Denn dort gab es so ein Wunderding wie cout noch nicht. Und wenn Du alten C-Code von irgendwem geschickt bekommst, soll das dein Compiler ja auch verarbeiten können, daher klappt der Code.

    Schau Mal, so einfach ist cout zu nutzen:

    #include <iostream>
    
    using namespace std; // diese Zeile oder man muss immer std:: vor cout schreiben
    
    int main()
    {
        double z = 1.5;
        int y = 200;
        cout << "Hallo, ich bin " << z << "m groß und wiege " << y << "kg. Ich weiß, ich bin Mal so richtig fett.";
        return 0;
    }
    

    Das ist doch viel praktischer als mit printf was hinzufriemeln!



  • @Eisflamme

    Danke für den Code!

    Habe denn Code jz selber geschrieben doch irgendwie mag der compilier nicht so wirklich er verweist mich immer auf die int main(). Was mach ich falsch?

    #include <iostream>

    using namespace std::

    int main()
    {
    double z = 1.5;
    int y = 200;
    cout << "hallo ich bin" << z << "m goss und wiege" << y << "kg";
    getchar();
    return 0;
    }
    kann dass am Compiler selbst liegen? verwende Dev-C++?
    Danke



  • Fehlermeldung?

    EDIT: Es muss so aussehen:

    using namespace std;
    


  • 314159265358979 schrieb:

    Für Freunde von printf habe ich heute etwas ganz besonderes im Angebot - nur heute zum halben Preis!

    Packs auf deine Homepage und einen Link darauf in deine Signatur - dann brauchst du es nicht bei jeder passenden und unpassenden Gelegenheit wieder rauskramen 😉
    Für den OP hat das zumindest im Moment garkeine Relevanz.



  • #include <iostream>
    
    using namespace std; // Semikolon statt zwei Doppelpunkte!
    
    int main()
    {
        double z = 1.5;
        int y = 200;
        cout << "hallo ich bin" << z << "m goss und wiege" << y << "kg";
        getchar();
        return 0; 
    }
    


  • @_matze

    wenn ich std:: in std; abändere kömmt nur ein LEERES Dos-Fenster!
    Darknight11



  • darknight11 schrieb:

    @_matze

    wenn ich std:: in std; abändere kömmt nur ein LEERES Dos-Fenster!
    Darknight11

    Es ist trotzdem richtig. Das merkst du daran, dass das Programm tatsächlich erstellt wird. Dein Problem liegt woanders.



  • pumuckl schrieb:

    314159265358979 schrieb:

    Für Freunde von printf habe ich heute etwas ganz besonderes im Angebot - nur heute zum halben Preis!

    Packs auf deine Homepage und einen Link darauf in deine Signatur - dann brauchst du es nicht bei jeder passenden und unpassenden Gelegenheit wieder rauskramen 😉
    Für den OP hat das zumindest im Moment garkeine Relevanz.

    Weder hab ich eine Homepgae, noch kram ichs jedes mal raus - Ich tipps jedes mal neu 😉



  • @_matze

    bloß wo?
    vllit bin ich zu blöd zum proggen gut möglich!



  • darknight11 schrieb:

    @_matze

    bloß wo?
    vllit bin ich zu blöd zum proggen gut möglich!

    Beschreibe mal bitte das Fehlverhalten genauer. Startest du das Programm und siehst dann dauerhaft eine leere Box (kann ich mir kaum vorstellen)? Oder verschwindet sie gleich wieder (kann ich mir ebenfalls kaum vorstellen, da getchar)? Oder wie?



  • @_Matze

    1. Quell tippen
    2. Compilieren
      3 Ausführen ( kommt eine Leere Dos-Box ) die sich durch Enter wieder schließst)

    nonst nicht ich verstehs selba nicht!



  • Hö? Seltsam. Vll flusht der nich. Mach Mal:

    cout << /* ... */ " so richtig fett." << endl;
    


  • @_Matze

    Jz funktionierts!

    Was ist eigendlich der #include <isotram>?

    wieso gehts dann mit <<endl;



  • darknight11 schrieb:

    Was ist eigendlich der #include <isotram>?

    wieso gehts dann mit <<endl;

    Steht beides im C++-Einsteiger-Buch deiner Wahl. Im ersten Kapitel.


Anmelden zum Antworten