Announcement

Collapse
No announcement yet.

Wie kann ich russische Zeichen im C++-Programm ausgeben?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich russische Zeichen im C++-Programm ausgeben?

    Hallo,

    gibt es eine "einfache" Möglichkeit in einem C++-Konsolenprogramm statt "normalen"(deutschen) Zeichen russische auszugeben(mit cout << usw.)?

    Bin leider ziemlicher Anfänger in C/C++ und wär für jede Hilfe dankbar.

    MfG Sepp

  • #2
    Hallo Sepp,

    wenn Du auf Deinem Computer die entsprechenden Codepages installiert hast, ist es kein Problem. Du must Dir immer vor Augen halten, dass alle Zeichen letztendlich Ziffern zwischen 0 und 255 (8 Bit Zeichensätze) sind, die durch entsprechende Codepages graphisch auf dem Schirm dargestellt werden.
    Zur weiteren Vertiefung schau mal hier rein:
    http://www.slovo.info/hints.htm
    Da Du über kurz oder lang auf Unicode stoßen wirst:
    http://mypage.bluewin.ch/reprobst/WordFAQ/Unicode.htm

    Gruß
    Gerhar

    Comment


    • #3
      Hallo,

      danke erstmal für die Links. Hab trotzdem noch nicht ganz alles verstanden.
      Brauch ich jetzt z.B. um alle Unicode-Zeichen überhaupt darstellen zu können eine spezielle Schriftart?
      Wie könnte ich mit C++ Uni-Code ausgeben?
      (Ich schau mich auch nochmal um aber vielleicht weißt du in dem Gebiet ja noch ein wenig mehr

      Gruß und vielen Dank nochmal,

      Sep

      Comment


      • #4
        Hallo Sepp,

        Du brauchst einen entsprechenden Font, das ist richtig. Betrachte mal die Ziffer '1', die z.B. in einem Worddocument schreibst. Hinter der auf dem Schirm sichtbaren 1 verbirgt sich der Wert 49.
        Markierst Du diese Ziffer und wechselt z.B. den Font auf Wingdings wird aus der 1 ein ganz anderes Symbol. Der Wert dahinter, die 49 hat sich aber nicht geändert. Um Unicodezeichen darstellen zu können, benötigst Du also einen Font der alle oder zumindest den größten Teil dieser Zeichen darstellen kann. Wenn Du mit Windows 2000 oder XP arbeitest, wirst Du solchen Unicodefonts auch vorfinden. Bei Windows 95/98 sieht es da schon ein wenig kläglicher aus. Wenn Du aber nur kyrillische Zeichen darstellen willst, reicht ein entsprechende 8 Bit Zeichensatz völlig aus
        http://www.paratype.ru/shop/default.asp?Item=FREE&page=free/default.asp.
        Diesen Font musst Du "nur" installieren und aktivieren und schon wird z.B. aus einem 'Ä' ein russischer Buchstabe.
        Bei Windows XP findest Du die entsprechenden Einstellungen unter System/Sprachoptionen.
        Der Umgang mit Unicode ist leider nicht ganz so trivial wie es manchmal dargestellt wird (Ausnahme XP, welches intern nur mit Unicode arbeitet)
        Schau mal unter der Hilfe vom BCB unter
        "Wide character routines" nach.
        Deshalb versuche es erst einmal mit den üblichen 8 Bit. Beschäftige Dich damit, wie Du z.B. einen kyrillischen Zeichensatz installierts und aktivierst. Auch bei Windows 95/98 gibt es eine Möglichkeit verschiedene Sprachen zu installieren. Zu meiner Schande muss ich zugeben, dass ich vergessen wie und wo. Glaube mich aber schwach erinnern zu können, dass man dieses mit der Installationsdiskette (Sprachoptionen installieren) nachholen kann, falls nicht schon geschehen.
        Anschließend erscheint in der Taskleiste ein Symbol z.B. DE für Deutsch, welches durch anklicken die anderen installierten Sprachen zugänglich macht
        Gruß
        Gerhar

        Comment


        • #5
          Hallo und danke nochmal für die Antwort

          Das Umschalten der Sprache auf Russisch ist kein Problem nur werden in der Konsole(Eingabeaufforderung) statt russische Zeichen lediglich kleine Rechtecke angezeigt.
          Ausserdem funktioniert das Umschalten per C++-Programm auch noch nicht.
          Habe <a href=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_setlocale.2c_._wsetlocale.asp target="locales1"> -*- hier -*- </a> ein Beispiel gefunden und getestet aber als Rückgabewert von "setlocale" kommt NULL zurück.
          Weiß hier leider wieder mal nicht mehr weiter

          Gruß Sep

          Comment


          • #6
            Hallo Sepp,

            hätte ich vielleicht schon mal eher fragen sollen: mit welchem Betriebssystem arbeitest Du ?

            Auf jeden Fall gilt auch hier, dass Du einen entsprechenden Font (in diesem Fall für das Dos-Fenster bzw. cmd-fenster)installieren musst. Ich kann Dir in diesem Fall dann aber auch nicht weiterhelfen, da ich mich selbst erst einmal informieren müsste, ob und wie man außer dem Standardmäßig vorgesehen Font Lucida Console bzw. Rasterschrift, einen anderen installieren kann. Ich hoffe aber trotzdem Dir ein wenig geholfen zu haben bzw. Dir zu zeigen welchen Weg Du gehen musst

            Gruß
            Gerhar

            Comment


            • #7
              Hallo Gerhard,

              Erstmal sorry dass ich mich so lange nicht gemeldet hab.
              Ich versuchs grade mit Win XP. Wenns in Linux ginge wäre das auch ok.

              Klar hat mir das weitergeholfen. Werde mal schauen ob ich den Rest auch selbst noch zusammenbekomm. Ich bin grade auch am rätseln wie ich für die Konsole ne Schriftart installiert bekomme. Mal schauen was das Internet dazu noch hergibt.

              Auf jeden Fall vielen Dank für deine Unterstützung.

              Grüße Sep

              Comment


              • #8
                Wie ist den der Eingabetext codiert? Hm.. Kästchen auf der Konsole. Klingt nach Unicode oder UTF-8 Text, der auf einem 8 Bit Terminal ausgegeben wird. Wenn dem so ist, muss dann nicht auch der Quelltext iso-codiert sein

                Comment


                • #9
                  ich bin auch erst seit ein paar Tagen bei C++ und somit überhaupt bei der Programmierung.

                  Ich habe mir, so wie Sepp, ebenfalls diese Frage gestellt, nur dass es bei mir um die Dartellung von Deutschen Lokalzeichen geht (also ä, ü, ö und ß). Ich will einfach nicht jdes mal den Hex-Code reinschreiben, vor allem weil man siuch den so schwer merkt. Und wegen meiner mangelnden erfahrung in der Programmierung, kann ich auch mit dem MSDN-Artikel den Sepp oben aufgeführt hat, nicht viel anfangen. Auch die oben angeführten Hilfen von wegen extra Fonts usw. helfen mir auch nichts, weil ich ja mit der Konsole arbeite und nicht jedem der das Programm benutzt zumuten will, dass er erst ma neue Schriftarten installiert oder seine Konsole oder sonstwas umstellt.

                  ach ja: ich benutze WinXp :-

                  Comment


                  • #10
                    also, bin doch bei der MSDN-doku weitergekommen, allerdings hab ich das selbe Prob wie Sepp:

                    Wenn ich

                    setlocale( LC_ALL, "german_germany.ACP" );

                    oder

                    setlocale( LC_ALL, "german_germany.1252" );

                    benutze, funzt das nicht. Hab das ganze auch mit uppercase G's ausprobiert, funktioniert auch nicht. _wsetlocale funktioniert auch nicht, weil der compiler meint: "102 main.cpp cannot convert `const char*' to `const wchar_t*' for argument `2' to `wchar_t* _wsetlocale(int, const wchar_t*)' "

                    und damit kann ich gar nix anfangen..

                    Comment

                    Working...
                    X