Text einlesen und ausgeben - aber es erscheint kein ä, Ö, ü



  • Hallo Leute - bestimmt wieder was einfaches für Euch.

    Ich lese einen Text aus einer Datei und gebe diesen im DOS Fenster aus - aber die Umlaute fehlen - also ich meine kein ä, ö und ü werden angezeigt.

    Ebenso wenn ich im DOS Fenster eine Rechenfunktion aufrufe kann ich nur

    34.66 + 32.77 rechnen aber wenn ich eigebe
    34,66 + 32,77 dann "stürzt" es ab.

    Was ist zu tun ?

    Heinz



  • bei Rechnungen darfst du keine "Kommas" einsetzen sondern dafür nur Punkte, da sich der Compiler an die amerikanische Schreibweise hält.



  • Hallo !

    Na eben, darum geht es mir ja - ich möchte ja gerade ein Komma benutzen zum Rechnen.

    Oder zumindest, wenn das absolut nicht geht, bei der cin >> zahl; abfangen, dass ein Komma nicht akzeptiert wird - aber nicht gleich abstürzen ( sieht aus wie ne Endlosschleife )

    Heinz

    Max M. schrieb:

    bei Rechnungen darfst du keine "Kommas" einsetzen sondern dafür nur Punkte, da sich der Compiler an die amerikanische Schreibweise hält.



  • heinz1 schrieb:

    Hallo !

    Na eben, darum geht es mir ja - ich möchte ja gerade ein Komma benutzen zum Rechnen.

    Oder zumindest, wenn das absolut nicht geht, bei der cin >> zahl; abfangen, dass ein Komma nicht akzeptiert wird - aber nicht gleich abstürzen ( sieht aus wie ne Endlosschleife )

    Heinz

    Max M. schrieb:

    bei Rechnungen darfst du keine "Kommas" einsetzen sondern dafür nur Punkte, da sich der Compiler an die amerikanische Schreibweise hält.

    Du könntest versuchen einen eigenen Eingabe-Operator für Kommazahlen nach europäischer Art zu schreiben, oder die locales ändern, moment mal im Struppi linsen. Vielleicht geht es so

    #include <locale>
    
    cin.imbue(locale("de_DE"));
    cout.imbue(locale("de_DE"));
    

    Ungetestet leider!



  • Lies doch nicht eine Zahl sondern einen std::string ein. Da ersetzt du alle kommas durch Punkte und wandelst in Zahl um

    Zum Ausgeben genauso, nur eben andersrum



  • Hallo !

    Also da mußt Du was verwechselt haben. Ich lese keine Zahlen ein, sondern eine Textdatei - und da ist es mir eigentlich egal ob da Punkte oder Kommas vorkommen, nur ä,ü,ö,Ä,Ü,Ö und das ß sollten schon richtig dargestellt werden.

    Und bei der Rechenfunktion hab ich mich dran gewöhnt, das ich als Komma einen Punkt eingeben muss - aber was macht der DAU ? - Auch wenn ich anstatt einer Zahl eien Buchstaben eingebe, um damit zu rechnen stürzt es ab.

    Heinz

    Maxi schrieb:

    Lies doch nicht eine Zahl sondern einen std::string ein. Da ersetzt du alle kommas durch Punkte und wandelst in Zahl um

    Zum Ausgeben genauso, nur eben andersrum



  • Schaue mal hier vorbei: http://people.freenet.de/cpp-programming.de.vu/quellcodes/code13.html
    Ich denke, das ist was du suchst 🙂
    Das ß wäre dann:

    cout << "Ich hei"<<(char)225 << "e ...";
    


  • Hallo !!!

    Nochmal: Ich lese einen Text aus einer Datei und gebe diesen im DOS Fenster aus - aber die Umlaute fehlen - also ich meine kein ä, ö und ü werden angezeigt.

    Da ist nichts mit cout gemeint - da gehts um das reine einlesen eines Textes.

    Aber trotzdem - Vielen Dank

    Heinz

    ChrissiB schrieb:

    Schaue mal hier vorbei: http://people.freenet.de/cpp-programming.de.vu/quellcodes/code13.html
    Ich denke, das ist was du suchst 🙂
    Das ß wäre dann:

    cout << "Ich hei"<<(char)225 << "e ...";
    


  • Schau doch mal im Konsolenforum vorbei.

    Extanded ASCII und ANSI. Vllt. verstehst dann wo das Problem ist.
    Bei den kommazahlen könnte Dir locale helfen (hab noch nix mit gemacht ka) und die Umlaute wirst Du umsetzen müssen wenn eine Datei z.B. unter Windows gelesen wurde aber unter DOS ausgegeben werden soll.

    Ka welche Antwort Du nu erwartest ?!


Anmelden zum Antworten