Variable Anzahl von angezeigten Kommastellen
-
Wie kann ich die Anzahl der angezeigten Mindestlänge und Präzision durch eine Variable bzw. symbolische Konstante festlegen?
Ich habe z.B.
printf("Der Wert lautet: %4.2lf \n", wert);
statt 4 und 2 möchte ich jedoch zwei Variablen, die den ausgegebenen Wertebereich festlegen.
-
Du kannst dir den Formatstring selbst zusammenbasteln. z.B.:
sprintf(formatstr, "Der Wert lautet: %%%d.%dlf \n", 4, 2); printf(formatstr, wert);
-
Oder du kannst printf() sagen, daß er Breite und Präzission aus seinen Parametern auslesen soll:
printf("Der Wert lautet: %*.*lf\n",wert,4,2);
-
Man lernt nie aus
-
CStoll schrieb:
printf("Der Wert lautet: %*.*lf\n",wert,4,2);
könnt ich drauf wetten, dass das nicht immer geht, also undefiniertes verhalten produziert...
edit: ach, vergesst das^^
sind ja sternchen....
-
CStoll schrieb:
Oder du kannst printf() sagen, daß er Breite und Präzission aus seinen Parametern auslesen soll:
printf("Der Wert lautet: %*.*lf\n",wert,4,2);
Genau sowas hab ich gemeint.
Ist mir auch neu - werds gleich mal ausprobieren!
-
printf("%*.*f", 4, 2, wert) eher. die werte fuer die sternchen kommen vorher. falls ich das recht in erinnerung habe -> ausprobieren
-
TactX schrieb:
Man lernt nie aus
du sagst es, danke
-
CStoll schrieb:
Oder du kannst printf() sagen, daß er Breite und Präzission aus seinen Parametern auslesen soll:
printf("Der Wert lautet: %*.*lf\n",wert,4,2);
Den kannte ich auch noch nicht. Ich programmier wohl zu viel C++ (ostringstream) und zu wenig C (Xprintf)