sprintf und wsprintf



  • //---------------------------------------------------------------------------
    #include <sstream>
    #include <string>
    #include <iostream>
    #include <stdio>
    
    #pragma hdrstop
    using namespace std;
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
      string Name = "Maria";
      int Geburtstag = 12;
    
      /*
         Die Ausgabe soll sein:
    
         Maria hat am 12. Geburtstag.
      */
    
      char Stream[255];
      sprintf(Stream, "%s hat am %d. Geburtstag.", Name, Geburtstag);
    
      cout << Stream << endl;
      int Bremse; cin >> Bremse;
    
      return 0;
    }
    //---------------------------------------------------------------------------
    

    Ausgabe ist bei mir: Maria hat am 7889447892(~) Geburtstag.
    Wieso?

    2. frage... ich kann in meiner c++ fibel nix über wsprintf finden!? wieso?



  • sprintf(Stream, "%s hat am %d. Geburtstag.", Name.c_str(), Geburtstag);
    

    Ausserdem vermischst du C und C++.
    Mit

    cout << Name << " hat am " << Geburtstag << ". Geburtstag" << endl;
    

    wär das nicht passiert. 😃

    Zu 2.)
    wsprintf() gehört wohl nicht zum Standard.



  • An welcher Stelle vermischt sich etwas?

    Wie ich kann ich das verhindern?



  • bertold schrieb:

    An welcher Stelle vermischt sich etwas?

    Wie ich kann ich das verhindern?

    Er will damit sagen, dass es in C++ aus bestimmten Gründen nicht mehr üblich ist printf und Konsorten zu verwenden, da man sich allgemein Buffer vom Leibe hält. (Außerdem Typsicherheit, etc.)



  • danke euch beiden.

    mit

    char Name[6] = "Maria";
    

    ist die typumwandlung wohl nicht mehr nötig. 🙂



  • Jep

    Wenn du jedoch C++, und nicht C, lernen willst gewöhn dich gleich an std::string 😃



  • gibt es eine übersicht - also gegenüberstellung - von c und c++ ?

    sehe da nämlich keinen unterschied :p



  • std::string und std::cout gibts in C nicht 😕



  • naja, aber es wird doch sicher mehr untzerschieden geben als

    "gibt's" und "gibt's nicht" ...



  • bertold schrieb:

    gibt es eine übersicht - also gegenüberstellung - von c und c++ ?

    sehe da nämlich keinen unterschied

    Mittlerweile dürfte die Liste der Gemeinsamkeiten deutlich kürzer sein als die Liste der Unterschiede 😉


Anmelden zum Antworten