Hi,
sorry für meine knappe Ausdrucksweise 😳
In der Regel kann man im Editor einstellen, in welchem Zeichensatz neue Dateien gespeichert werden sollen.
Im gedit zum Beispiel (Anwendungen → Zubehör → Texteditor) gibt es im "Speichern Unter" Menü eine Zeile mit "Zeichenkodierung:", und da steht wahrscheinlich was von wegen UTF-8 drin.
Das C-Programm versucht jetzt dieses Zeichen aber in der Standard-ASCII-Kodierung darzustellen und scheitert. Dem kannst du Abhilfe schaffen, in dem du entweder deine Dateien nicht in UTF-8 Kodierung speicherst, oder dem Programm mitteilst welche Kodierung es verwenden soll. Die zweite Variante wäre wahrscheinlich die Bessere, da du dann schließlich über einen größeren Zeichensatz verfügst. 😉
Die Auswahl des Zeichensatzes im C-Programm wird auf der Seite, die ich oben verlinkt habe angegeben. Kurz gesagt klappt es in etwa so, dass man mit "setlocale" die Variablen, die die lokaliesierung betreffen setzen kann. Der erste Parameter gibt die Variable an, und der zweite den Wert, auf den man ihn setzen möchte. Also zum Beispiel setlocale( LC_CTYPE, "de_DE.UTF-8" ) um die Einstellungen für die Wide-Character Funktionen auf deutsch mit UTF-8 Kodierung um zu stellen.
Gibt man einen leeren String an, so wird die gesetzte Umgebungsvariable verwendet.
Dein Programm sähe dann so aus:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main(void)
{
setlocale(LC_ALL, "");
wprintf(L"%lc", L'ä');
}
Ich hoffe das hilft dir ein wenig weiter. 😉