Imposta la larghezza variabile della colonna di testo in printf

Imposta la larghezza variabile della colonna di testo in printf


Per determinare la dimensione della colonna in linguaggio C utilizziamo %<number>d .
Ad esempio, posso digitare %3d e mi darà una colonna di larghezza=3.
Il mio problema è che il mio numero dopo il % è una variabile che ricevo, quindi ho bisogno di qualcosa come %xd (dove x è la variabile intera che ho ricevuto qualche tempo prima nel mio programma).
Ma non funziona.


C'è un altro modo per farlo?


Risposte:


Puoi farlo come segue:


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

Dal commento di Lee:

Puoi anche usare un * per la precisione:


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

Nota che entrambi width e precision deve avere il tipo int come previsto da printf per il * argomenti, digita size_t è inappropriato in quanto potrebbe avere dimensioni e rappresentazione diverse sulla piattaforma di destinazione.