Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

29.10.2011, 13:19

[Gelöst] Dasselbe 'ü' in zwei Textdateien unterschiedlich?!

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.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Informagic« (29.10.2011, 13:57)


BLU3 L30PARD

Treue Seele

Beiträge: 336

Wohnort: Hoch oben im Norden Schleswig Holsteins

Beruf: Schüler

  • Private Nachricht senden

2

29.10.2011, 13:36

Also so wie ich das sehe schreibt dein Programm mit einem seltsamen ecoding in die Textdateien.
Soweit ich weiß ist das encoding an die Textdatein irgenwie "angepinnt". Deswegen bringt es auch nix,
das per Hand zu ersetzen.

Leider bin ich in C++ nicht so bewandert, darum weiß ich nicht WIE man das einstellt,
aber vlt. suchst du einfach mal bei Google? ;)

3

29.10.2011, 13:49

Danke, das wars schon! Das Stichwort "Encoding" hat mich dazu veranlasst, mir in meinem Texteditor den Menüpunkt "Kodierung" anzuschauen und da werden entsprechende Konvertierungsfunktionen angeboten! Danke :)

EDIT: Für den Interessierten: Das ifstream-Objekt arbeitet scheinbar mit der ANSI-Kodierung, aber die Textdatei war in der Kodierung UTF-8 ohne BOM (http://de.wikipedia.org/wiki/UTF-8 ).

Werbeanzeige