Variablen "einfach benutzen"



  • Hallo erstmal,

    Vermutlich ist meine Frage wohl etwas blöd 😉
    Allerdings hab ich noch keine allzu große erfahrung in C++.
    Dennoch hab ich schon einige SourceMode-Plugins geschrieben und das orintiert sich eindeutig an C++.

    Also dort kann man Variablen ganz einfach "benutzen" z.B. gibt dieser Befehl einfach eine Chatnachricht aus

    new Lieblingszahl = 42;
    PrintToChatAll("Meine Lieblingszahl ist: %d", Lieblingszahl);
    

    Sozusagen das gleiche würde ich auch gerne in c++ machen. (z.B. mit "cout")
    Vermutlich stell ich mich einfach blöd an, aber kann mir jemand damit helfen?



  • 1. Der gezeigte Code macht so überhaupt keinen Sinn.
    2. Fehlt deine konkrete Frage komplett. Keine Ahung auf was ich antworten sollte..



  • Man kann auch in C++ Variablen einfach benutzen. Dazu sind sie da.



  • Äh...

    #include <iostream>
    
    int main() {
      int lieblingszahl = 42;
      std::cout << "Meine Lieblingszahl ist " << lieblingszahl << std::endl;
    }
    

    ?

    Mir ist nicht ganz klar, was deine Frage eigentlich ist.



  • Ok ich habe es wohl doch nicht richtig klar ausgedrückt.
    Mein code war ein SourceMode code.

    Ich wollte eigentlich nur wissen ob es diese "%d" (keine Ahnung wie ich das richtig ausdrücken soll) gibt.

    also z.B. wenn ich ein Shutdown inizieren will.
    Das würde ich ja so etwa machen (mit 1 minute wartezeit)

    system("shutdown -s -t 60");
    

    Aber wenn ich jetzt z.B. dort statt "60" eine Variable benutzen will, wie mache ich das?



  • Wenn du das mit dem % haben willst, dann gibt es dazu printf oder die boost Variante davon in boost::format.

    Funktionieren tut das aber auch mit std::stringstream.



  • Strings setzt man üblicherweise mit Stringstreams zusammen:

    #include <cstdlib>
    #include <sstream>
    
    int main() {
      std::ostringstream fmt;
    
      int seconds = 60;
      fmt << "shutdown -s -t " << seconds;
    
      std::system(fmt.str().c_str());
    }
    

    Dabei ist fmt.str() das zusammengesetze String-Objekt und fmt.str().c_str() ein nullterminierter C-String. std::system wurde von C geerbt, deswegen ist der Schritt notwendig.

    SourceMode ist mir kein Begriff, deswegen kann ich dazu nichts vergleichendes sagen.



  • #include <stdio> // oder so ähnlich
    
    int main (void)
    {
        char* myname = "lk";
        char* myage = "150 years old";
        printf("My name is %s, and I am %s", myname, myage);
        return 0;
    }
    // Output: My name is lk, and I am 150 years old
    

    http://www.cplusplus.com/reference/clibrary/cstdio/printf/



  • lk schrieb:

    #include <stdio> // oder so ähnlich
    

    http://www.cplusplus.com/reference/clibrary/cstdio/printf/

    Wie man schon aus dem Link entnehmen kann, müsste es korrekter Weise <cstdio> sein. :p


Anmelden zum Antworten