wchar_t: mit Unicode-Nr Wert zuweisen.....



  • wofstream out("file.txt");
    for(unsigned short c = 0; c <= static_cast<unsigned short>(-1); ++c)
    {
      out << static_cast<wchar_t>(c);
    }
    

    Dafür sorgen wchar_t unsigned ist, wie findest du in der Compiler Doku.

    🙂 Helfende Grüße

    [ Dieser Beitrag wurde am 18.03.2003 um 21:49 Uhr von Lars editiert. ]

    [ Dieser Beitrag wurde am 19.03.2003 um 06:42 Uhr von Lars editiert. ]



  • Es dürfte eventuell auch so gehen:

    #include <fstream>
    #include <limits>
    using namespace std;
    int main()
    {
      wofstream out("file.txt");
      for(wchar_t c = 0; c <= numeric_limits<wchar_t>::max(); ++c)
      {
        out << c;
      }
    }
    

    🕶 Ungetestete Grüße

    [ Dieser Beitrag wurde am 19.03.2003 um 06:42 Uhr von Lars editiert. ]



  • Die zweite Variante ist die aufjedenfall die zu bevorzugende, da sie, im Gegensatz zur ersten, portabel ist.
    :o Empfehlende Grüsse



  • 0 <= static_cast<unsigned short>(-1);

    0 <= numeric_limits<wchar_t>::max();

    😕



  • Original erstellt von HumeSikkins:
    0 <= static_cast<unsigned short>(-1);
    0 <= numeric_limits<wchar_t>::max();
    😕

    er will doch jedes Unicodezeichen ausgeben - zumindestens schliess ich das aus seinem Post.

    😕 Missverständliche Grüsse

    [ Dieser Beitrag wurde am 18.03.2003 um 22:00 Uhr von Lars editiert. ]



  • Lars: Was soll das mit den Grüßen? Das ist nicht cool. 🕶



  • @Lars: wieso 0 <= ... 😕
    😕 Missverständliche Grüße zurück



  • Ach du.... Wie blind muss man sein.



  • Original erstellt von Lars:
    **Es dürfte eventuell auch so gehen:

    #include <fstream>
    #include <limits>
    using namespace std;
    int main()
    {
      wofstream out("file.txt");
      for(wchar_t c = 0; c <= numeric_limits<wchar_t>::max(); ++c)
      {
        out << c;
      }
    }
    

    🕶 Ungetestete Grüße

    **

    nein, genau da liegt mein Problem.....

    Das ist mein Testcode:

    for(wchar_t c = 0; c <= 512; ++c)
        {
            File << c << '\n';
        }
    

    und die Ausgabe in der Datei ist dann:

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    (und so weiter)
    

    😕 😕 😕



  • niemand eine Ahnung? 😕



  • SICHER das du bei der Datei einen wofstream verwendest?



  • Ansonsten Code posten...



  • vermutlich wird wchar_t nicht wie ein builtin behandelt sondern wie ein unsigned short.

    Mhm.. hat der VC++6 da nicht nen Bug, oder wars der 5er? (sorry, weiss ich nicht genau)



  • Original erstellt von Lars:
    SICHER das du bei der Datei einen wofstream verwendest?

    ups... sry, hat ich uebersehen... wo ist der Unterschied zu 'nem normalen ofstream?

    ich hab's jedenfalls versucht, der Output war net sehr hilfreich:

    EDIT: mist, kann das nicht posten... der Beitrag enthaelt dann angeblich unerlaubte Zeichen.... auf jeden Fall erhalt ich nur Datenmuell.... 😞

    ach ja, das ist mein Quellcode:

    #include <fstream>
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
    
        string Path;
        cout << "where do you want this file to be written to? \n";
        cout << "enter path: ";
        getline(cin, Path, '\n');
    
    //  unsigned short UpperBound;
    //  cout << '\n';
    //  cout << "till which Code do you want the printout? \n";
    //  cout << "last element you want to output: \n";
    //  cin >> UpperBound;
    
        wofstream File(Path.c_str() );
    
    //  for(wchar_t c = 0; c <= UpperBound; ++c)
        for(wchar_t c = 0; c <= 512; ++c)
        {
            File << c << '\n';
        }
    
        return 0;
    }
    

    [ Dieser Beitrag wurde am 22.03.2003 um 18:43 Uhr von Blue-Tiger editiert. ]


Anmelden zum Antworten