Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Umlaute ä,ö und ü

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.09.2019, 13:11 Uhr
milchstrasse



Guten Tag.

Ich schreibe ein Programm in C++ und es muss mit ä,ö und ü umgehen können.
Es geht auch alles, also String einlesen und ausgeben auf der Konsole.
String schreiben in Datei geht auch.
Aber lustigerweise, wenn ich aus derselben Datei die Zeilen einlese und ausgebe auf Konsole, dann gehen die Umlaute nicht mehr, also falsche Ausgabe.


C++:
ofstream myfile;
myfile.open("example.txt");
myfile << "Writing thiÖ to a föil.\n";            //Also das geht.
myfile.close();
ifstream meinfile("example.txt");
if (meinfile.is_open()) {
    while (getline(meinfile, mystr))           //Das geht nicht.
    {
        cout << mystr << '\n';             // a, ö und ü falsch.
    }
    meinfile.close();
    }
else cout << "Unable to open file";

return 0;



Ach ja, ich programmiere mit Visual Studio.
Wäre froh für Hilfe.

Übrigens, wenn ich in C programmieren will, ist es noch viel schlimmer.

Dieser Post wurde am 18.09.2019 um 18:35 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.09.2019, 17:58 Uhr
f.-th.




Zitat von milchstrasse:
...

C++:


    if (meinfile.is_open())
   {
        while (getline(meinfile, mystr))           //Das geht nicht.
        {
            cout ...





Das geht nicht <==> woher weiss dein Compiler was "mystr" ist?

Nutze die Codetags bei der Quelltextdarstellung - siehe unter Quellcode links neben dem Editor dieses Forums.

MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.09.2019, 20:08 Uhr
milchstrasse




C++:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
    printf("German: Übung \n");
    printf("English: Exercise \n");
    return 0;
}



Also nehmen wir dieses einfache C-Programm.
Ich habe Windows 10, Visual Studio.

Das Ü wird nicht richtig dargestellt in der Konsole.
Die Konsole ist auf Codepage 850 eingestellt.
Was könnte man da machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.09.2019, 18:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
du hast den Fehler richtig erkannt: Codepage 850 kennt das Ü nicht an der selben Stelle wie der ISO-Zeichensatz deiner Quelldatei. Also entweder Quelldatei mit einem Editor auf Codepage 850 konvertieren und das dann kompilieren, oder wenn möglich die Konsole auf ISO-8859-15 oder besser noch UTF-8 stellen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: