Hallihallo,
ich komm grad beim Programmieren (falls jemanden das Programm interessiert: Es ist für den Bundeswettbewerb Informatik Aufgabe 4) nicht weiter bzw. habe ein bestimmtes Problem. Ich möchte eine Textdatei auslesen, in der ein Roman, verfasst in deutscher Sprache, steht. Dafür verwende ich einen normalen ifstream. Nun kommen in der deutschen Sprache auch Sonderzeichen oder die drei Umlaute "ä", "ö" und "ü" vor und hier fängt das Problem an. In der Textdatei macht der ifstream aus einem "ü" (ASCII-Code 252) das ASCII-Zeichen 195 (kann ich hier iwie nicht tippen). Das Merkwürdige ist, dass das ganze mit einer anderen Textdatei, die von mir angelegt wurde, in der ich auch ü's reingeschrieben hab, korrekt funktioniert. Ich hab mal in meinem Texteditor (notepad++) das ü in der Datei, in der es nicht klappt, noch mal gelöscht, selbst ein ü hingeschrieben und gespeichert, aber ohne Erfolg.
Ich könnte natürlich jetzt herausfinden, welche komischen Zeichen er aus den Umlauten macht und das irgendwie abfangen, aber das ist mir zu riskant (da ich an einem bestimmten Punkt das Programm sich selbst überlassen muss / nicht alles austesten kann) und auch einfach zu hässlich.
Wie kann denn das sein? Ich benutze übrigens MSVC++ 2010 Express und das Programm ist eine Konsolenanwendung. Und wenn ich sage, dass der ifstream dies oder das draus macht, sehe ich das nicht erst im Konsolenfenster, sondern beim Debuggen in der Werteüberwachung.
Kann mir also jemand erklären, wie das sein kann?
Ich bin an einem Punkt, an der ich nicht weiterkomme. Danke schonmal für die Antworten.