如何在定长输出时右对齐,并且不够的部分以特定字符填充?比如,我想输出8位,现在输出12345,要求右对齐,并且左边空出的3位用*填充。

解决方案 »

  1.   

    printf("%8*d", 12345);如果我没记错的话
      

  2.   

    Example/* fprintf example */
    #include <stdio.h>int main()
    {
       printf ("Characters: %c %c \n", 'a', 65);
       printf ("Decimals: %d %ld\n", 1977, 650000);
       printf ("Preceding with blanks: %10d \n", 1977);
       printf ("Preceding with zeros: %010d \n", 1977);
       printf ("Some different radixes: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
       printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
       printf ("Width trick: %*d \n", 5, 10);
       printf ("%s \n", "A string");
       return 0;
    }And here is the output:Characters: a A
    Decimals: 1977 650000
    Preceding with blanks:       1977
    Preceding with zeros: 0000001977
    Some different radixes: 100 64 144 0x64 0144
    floats: 3.14 +3e+000 3.141600E+000
    Width trick:    10
    A string