uint16_t Werte hinzufügen


  • Mod

    Nathan schrieb:

    Spaß beiseite:

    auto hello465 = "Hello" + std::to_string(465);
    // in hello465 steht die Zeichenfolge "Hello465"
    

    ?

    Ich wette, der Threadersteller möchte einfach nur beides hintereinander ausgeben. Aber das darf ihm jemand anderes aus der Nase ziehen.



  • SeppJ schrieb:

    Ich wette, der Threadersteller möchte einfach nur beides hintereinander ausgeben.

    #include <iostream>
    // #include <string>
    
    using namespace std; // frag erstmal nicht danach
    
    int main()
    {
        cout << "Hello " << 465 << '\n';
        return 0;
    }
    

  • Mod

    Da ist das 465 aber ein int, kein uint16_t [/klugscheiß] 😃



  • Produziert das hier mehr Übelkeit?

    #include <iostream>
    #include <sstream>
    #include <string>
    
    void concat(std::ostream& stream)
    { }
    
    template <typename T, typename ... List>
    void concat(std::ostream& stream, T var, List... args)
    {
        stream << var;
        concat(stream, args...);
    }
    
    int main()
    {
        std::stringstream sstr;
    
        concat(std::cout, "Hello ", static_cast <uint16_t> (465), '\n');
        concat(sstr, "Hello ", static_cast <uint16_t> (465), '\n');
    
        auto string = sstr.str();
        // std::cout << sstr.rdbuf();
        return 0;
    }
    

  • Mod

    Tim06TR schrieb:

    Produziert das hier mehr Übelkeit?

    Wird zumindest der Frage gerecht 🙂 👍



  • Wollte das ohne strings machen



  • Gut zu wissen.



  • LightBoom schrieb:

    Wollte das ohne strings machen

    Was ist denn das Wort Hello, wenn kein String?


  • Mod

    MFK schrieb:

    LightBoom schrieb:

    Wollte das ohne strings machen

    Was ist denn das Wort Hello, wenn kein String?

    "Hallo" ist ein const char[6] 😉

    @Threadersteller: Wie du bemerkst, bekommst du nur dumme Antworten. Das liegt da dran, dass - das muss man einfach so sagen - deine Frage ziemlich dumm ist. Wie man kluge Fragen stellt:
    http://www.tty1.net/smart-questions_de.html
    Oder, etwas spezieller auf dieses Forum:
    http://www.c-plusplus.net/forum/200753
    und
    http://www.c-plusplus.net/forum/136013



  • SeppJ schrieb:

    "Hallo" ist ein const char[6] 😉

    Mir ist peinlich, dass ich das jetzt ausprobiert habe, und ich traue mich gar nicht zu fragen, aber:
    EDIT: Eigentlich war mir nur gerade mal danach cxa_demangle auszuprobieren... -.-

    #include <iostream>
    #include <string>
    #include <cxxabi.h>
    #include <typeinfo>
    // #include <stdexcept>
    
    template <typename T>
    struct type
    {
        // schnell runtergetippt
        static std::string name()
        {
            int status = 0;
            auto* cptr = abi::__cxa_demangle(typeid (T).name(), nullptr, nullptr, &status);
            std::string str (cptr);
            if (status) free(cptr);
            return str;
        }
    };
    
    int main()
    {
        std::cout << typeid("Hello").name() << "\n";
        std::cout << type<decltype("Hello")>::name() << "\n";
        return 0;
    }
    

    ergibt

    char [6]
    

    (A6_c)
    Was habe ich jetzt falsch kaputt gemacht?


  • Mod

    Tim06TR schrieb:

    Was habe ich jetzt falsch kaputt gemacht?

    Das genau zu beantworten, dafür müsste ich mich in __cxa_demangle einarbeiten. Aber du hast hoffentlich gemerkt, dass dein Code bei einem const int[6] ebenfalls "int[6]" angibt, es also nicht an dem "Hello" liegt?



  • SeppJ schrieb:

    Tim06TR schrieb:

    Was habe ich jetzt falsch kaputt gemacht?

    Aber du hast hoffentlich gemerkt, dass dein Code bei einem const int[6] ebenfalls "int[6]" angibt, es also nicht an dem "Hello" liegt?

    oh... -.-

    aber typeid gibt schon das falsche (?) Ergebnis. Es sei denn cv-qualifiers werden gar nicht erst berücksichtigt.
    i für const int


  • Mod

    Tim06TR schrieb:

    aber typeid gibt schon das falsche (?) Ergebnis. Es sei denn cv-qualifiers werden gar nicht erst berücksichtigt.
    i für const int

    Das ist auch so bei typeid, nach Standard.


Anmelden zum Antworten