On 30.11.2016 20:48, Dr.-Ing. Dieter Jurzitza wrote:
Hallo zusammen, vielleicht bin ich hier völlig falsch, vielleicht kann mir aber auch jemand helfen.
Ich möchte mittels "fprintf" Strings in eine Datei schreiben (unter linux, ist aber vermutlich davon unabhängig). Ein Minimalbeispiel:
#include <stdio.h>
int main (void){ FILE *outfile;
outfile=fopen("test.dat", "w");
fprintf(outfile, ">>%-36s<<\n", "Hier beginnt es:"); fprintf(outfile, ">>%-36s<<\n", "Viele Grüße!"); fprintf(outfile, ">>%-36s<<\n", "Viele Gruesse!"); fclose (outfile); return(0); }
Die Zeile mit "Viele Grüße" (2 Umlaute) ist 2 Zeichen kürzer als die anderen beiden Zeilen, wohl weil "C" für "ü" und "ß" als utf8 je 2 Zeichen vorsieht - in der Darstellung sind es aber nur je 1 Zeichen, so dass die zweite Zeile im Beispiel "zu kurz" wird und die Formatierung der folgenden Zeichen in dieser Zeile "kaputt", sprich: um zwei Zeichen nach links verschoben ist. Weiß hier jemand eine Lösung? Googeln hat mich nicht weitergebracht, ich habe auch mit "setlocale" herumexperimentiert, ist aber scheinbar ebenfalls egal.
Ach ja, "file" auf die Ausgabedatei liefert "test.dat: UTF-8 Unicode text". Die Problematik ist übrigens bei openSUSE 13.1 und bei leap 42.1 identisch, ich denke nicht, dass es eine releasespezifische Problematik ist.
Vielen Dank schonmal für's Mitdenken,
Das ist in der Tat das falsche Forum, aber ein mögliches Vorgehen ist hier beschrieben: http://stackoverflow.com/questions/11431950/ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org