Есть способ использовать потоки, но я не знаю, как это сделано: это что-то вроде cout.SetPrecision ().Но способ C состоит в том, чтобы предоставить спецификацию формата.
int
main (int argc, char **argv)
{
printf ("%*d\n", atoi(argv[1]), 10); // outputs 10 into fieldwidth given by parameter
}
Требуется немало разработки для обработки патологий ввода, но основная концепция работает.*
означает использование следующего параметра в качестве ширины поля.