Legen Sie die variable Textspaltenbreite in printf fest

Legen Sie die variable Textspaltenbreite in printf fest


Um die Größe der Spalte in C-Sprache zu bestimmen, verwenden wir %<number>d .
Zum Beispiel kann ich %3d eingeben und es wird mir eine Spalte von width=3 geben.
Mein Problem ist, dass meine Nummer nach dem % ist ist eine Variable, die ich erhalte, also brauche ich so etwas wie %xd (wobei x ist die Integer-Variable, die ich irgendwann zuvor in meinem Programm erhalten habe).
Aber es funktioniert nicht.


Gibt es eine andere Möglichkeit, dies zu tun?


Antworten:


Sie können dies wie folgt tun:


printf("%*d", width, value);

Aus Lees Kommentar:

Sie können auch ein * für die Genauigkeit verwenden:


printf("%*.*f", width, precision, value);

Beachten Sie, dass sowohl width und precision muss vom Typ int sein wie von printf erwartet für * Geben Sie als Argumente size_t ein ist unangemessen, da es auf der Zielplattform eine andere Größe und Darstellung haben kann.