eingelesene umlaute in datei schreiben
-
Folgendes Prob:
lese in der Konsole Buchstaben ein und will diese dann in eine .txt schreiben. Mit normalen Buchstaben geht das auch nur für die Umlaute und ß nicht; sondern schreibt „. Wie kann ich auch die Umlaute richtig in die .txt schreiben?
code ausschnitt:
char umlaut;
umlaut = getchar ();
printf ("%c\n", umlaut); /* Ausgabe geht*/const char * const filename = "test.txt";
FILE * stream;
stream = fopen (filename, "a+");
fprintf (stream, "%c", umlaut);
fclose (stream);
-
Damit bist Du wahrscheinlich im Konsolenforum besser aufgehoben. siehe auch: http://forum.c-plusplus.net/viewtopic.php?t=39326
-
@snard
Vielleicht liegts ja nicht daran, wie du die Umlaute reinschreibst, sondern daran wie sie gelesen werden ;). Was für ein Programm nimmst du denn her zum Nachschauen? Hast du deine txt-Datei schonmal mit einem anderen Programm angeschaut?
-
Sollte ich ausschließen können, da editor. String wird auf jeden fall richtig eingelesen (printf() funzt). Muss irgendwie an der Übergabe zum stream liegen, denke ich. Schreibt in die .txt, anstatt der Umlaute, abwechselnd „ oder ” oder .
-
Welchen editor? Der unter DOS/Konsole oder Notepad? Ich würde die Datei übrigens mal mit beiden anschauen ;).
-
windows editor und notepad kommt das Gleiche
-
Gib die Datei mal mit dem Befehl type auf der Konsole aus...
-
@snard
Was ist der Windows-Editor bei dir? Ich würde mir die Datei mal in der Eingabeaufforderung anschauen mit dem Befehl: edit datei.txt
-
Ok, Übergabe funzt anscheinend doch. Da Datei mit type in der Konsole richtig ausgegeben wird alle Umlaute sowie ß. Aber wie schaffe ich es nun, dass die auch im editor(ist das einfache notepad im win verzeichnis) richtig sind bzw was läuft da schief. Steh voll auf'm Schlauch. Thx so far.
-
Ich schätze mal es liegt einfach daran, dass type die ASCII-Tabelle benutzt und notepad die Unicode-Tabelle.