Längerer String mit bestimmter Länge
-
"%*.s", 40-strlen(umgl), getenv(...),...
-
irgendwie kriege ich das nicht gebacken:
fprintf(stderr,"| %*.s |\n", 40-strlen(umg1), getenv(umg1));
Kannst bissi genauer sagen?
-
sorry, mein fehler. der punkt nach dem * war falsch. so muss es sein:
fprintf(stderr,"| %*s |\n", 40-strlen(umg1), getenv(umg1));
-
hmm, das ist nicht gut, Ausserdem will ich 2 Variablen ausgeben und nicht eins.
Dazwischen soll ein : sein.
-
fprintf(stderr,"| %s: %*s |\n", umgl, 40-strlen(umg1), getenv(umg1));
darauf haettest du aber nun wirklich selber kommen koennen.
-
auf sowas hätte ich wirklich nicht kommen können, da ja jetzt drei "Variablen" sind und nicht zwei.
Und es funktioniert auch nicht.
Ich glaube das mit dem strlen ist an der falschen Seite. Denn das getenv ist dass was begrenzt werden soll.
-
char foo[] = "hello"; char bar[] = "world"; printf("%s: %*s", foo, 40-strlen(foo), bar);
*getestet*
-
hm, mach mal das:
f
printf(stderr,"| %s: %*s |\n", umg1, 40-strlen(umg1), getenv(umg1));
-
vorgekaut:
fprintf(stderr, "| %s: %*s |\n", umg1, max(0, 40-strlen(umg1)), getenv(umg1));
-
maximo: Und du willst später mal ein Hacker werden? Keine Chance...
-
ich haette dann noch das anzubieten, selbstverstaendlich schon zerkleinert und mit enzymen durchtraenkt:
char foo[] = "hello"; char bar[] = "world"; fprintf(stderr, "%-40s: %s", foo, bar);
-
hm, das hatte ich schon ausprobiert. Das mit dem max ist wieder so ne sachen.
Das ist doch eine Funktion. Und egal wie ich es mache, es passt einfach nicht.
Bei dir schon? Ich glabe ich muss mich mehr mit der Formatierung bzw. Umwandlungsvorgaben auseinander setzen.Und es soll zum Programm passen.