Umlaute



  • ich habe ein Programm unter Eclipse für C geschrieben.
    Die Beschreibung des Programms:

    Es wird eine Datei geöffnet und werden die Umlaute in dieser Datei umgeschrieben sowie in eine neue Datei gespeichert.

    Der Code sieht wie folgt aus:

    #include <stdio.h>

    int main(void)
    {
    FILE *lesen, *schreiben;
    char zeichen;

    lesen = fopen("/home/workspace/dateiname_eingabe", "r");

    if (lesen == NULL)
    printf("Fehler beim Oeffnen der Datei !");
    else
    {

    schreiben = fopen("/home/workspace0/dateiname_ausgabe", "w");

    if (schreiben == NULL)
    printf("Fehler beim Schreiben der Datei !");
    else
    {
    zeichen = fgetc(lesen);

    while (zeichen != EOF)
    {
    switch (zeichen)
    {
    case 'a':
    fputs("A", schreiben);
    break;

    default:
    fputc(zeichen, schreiben);
    }

    zeichen = fgetc(lesen);
    }

    fclose(schreiben);
    }

    fclose(lesen);
    }
    return 0;
    }

    Das obige Beispiel läuft, bis auf ich anstatt die folgende Zeile

    case 'a':
    fputs("A", schreiben);

    die schreibe.

    case 'ä':
    fputs("ae", schreiben);

    Dann wird eine Fehlermeldung gegeben:

    Warnung: case-Marke überschreitet Maximalwert des Typs
    Warnung: Zeichenkonstante mit mehreren Zeichen

    Danke

    Azad



  • 1. Bitte benutze CPP-Tags (bevor Du fragst, was das ist, schau Dich bitte etwas unterhalb des Foren-Editors um).
    2. Der Eclipse-Editor wird den Quelltext vermutlich in UTF-8 speichern, wo Umlaute mehr als ein Byte lang werden. Stell diesen Editor um auf ISO-8859-15, dann sollte es gehen.



  • Hallo,

    erstmal danke ich dir. Deine Lösung hat's geklappt.

    Ich hatte nachgeguckt und fand nichts. Tut mir leid. Wo ist das nochmal?

    1. Bitte benutze CPP-Tags (bevor Du fragst, was das ist, schau Dich bitte etwas unterhalb des Foren-Editors um).

    Vielen Dank

    Azad



  • Azad schrieb:

    Wo ist das nochmal?

    Unter dem Eingabefeld, in dem ich gerade tippe, befindet sich ein Button "C/C++".



  • Jetzt habe ich es gefunden.

    Danke nochmal

    Azad



  • Ich bin ein Deutscher - holt mich hier raus!
    

Anmelden zum Antworten