首页 > 解决方案 > 如何对齐C中的列

问题描述

我需要编写一个程序,在 5 列中显示八进制、十六进制和符号的十进制值。(值 0-32 需要指定特殊代码)。该程序有效,但输出需要很好地对齐。我应该怎么做才能对齐列并使其看起来整洁?这是程序:

#include <stdio.h>

main()
{
    int n,i,u=1,a=0,b=255;

    printf("\272");
    i=printf("My program to draw the ASCII table:");
    printf("\272\n");
    printf("\310");
    for(n=0;n<i;n++)  printf("\315");
    printf("\274\n\n");

  for(;a<=b;a++)
  {
      switch(a)
             {
                case 0:
                    printf("%d %o %x NUL  \272  ",a,a,a);
                    break;
                case 1:
                    printf("%d %o %x SOH  \272  ",a,a,a);
                    break;
                case 2:
                    printf("%d %o %x STX  \272  ",a,a,a);
                    break;
                case 3:
                    printf("%d %o %x ETX  \272  ",a,a,a);
                    break;
                case 4:
                    printf("%d %o %x EOT  \272  ",a,a,a);
                    break;
                case 5:
                    printf("%d %o %x ENQ  \272  ",a,a,a);
                    break;
                case 6:
                    printf("%d %o %x ACK  \272  ",a,a,a);
                    break;
                case 7:
                    printf("%d %o %x BEL  \272  ",a,a,a);
                    break;
                case 8:
                    printf("%d %o %x BS  \272  ",a,a,a);
                    break;
                case 9:
                    printf("%d %o %x TAB  \272  ",a,a,a);
                    break;
                case 10:
                    printf("%d %o %x LF  \272  ",a,a,a);
                    break;
                case 11:
                    printf("%d %o %x VT  \272  ",a,a,a);
                    break;
                case 12:
                    printf("%d %o %x FF  \272  ",a,a,a);
                    break;
                case 13:
                    printf("%d %o %x CR  \272  ",a,a,a);
                    break;
                case 14:
                    printf("%d %o %x SO  \272  ",a,a,a);
                    break;
                case 15:
                    printf("%d %o %x SI  \272  ",a,a,a);
                    break;
                case 16:
                    printf("%d %o %x DLE  \272  ",a,a,a);
                    break;
                case 17:
                    printf("%d %o %x DC1  \272  ",a,a,a);
                    break;
                case 18:
                    printf("%d %o %x DC2  \272  ",a,a,a);
                    break;
                case 19:
                    printf("%d %o %x DC3  \272  ",a,a,a);
                    break;
                case 20:
                    printf("%d %o %x DC4  \272  ",a,a,a);
                    break;
                case 21:
                    printf("%d %o %x NAK  \272  ",a,a,a);
                    break;
                case 22:
                    printf("%d %o %x SYN  \272  ",a,a,a);
                    break;
                case 23:
                    printf("%d %o %x ETB  \272  ",a,a,a);
                    break;
                case 24:
                    printf("%d %o %x CAN  \272  ",a,a,a);
                    break;
                case 25:
                    printf("%d %o %x EM  \272  ",a,a,a);
                    break;
                case 26:
                    printf("%d %o %x SUB  \272  ",a,a,a);
                    break;
                case 27:
                    printf("%d %o %x ESC  \272  ",a,a,a);
                    break;
                case 28:
                    printf("%d %o %x FS  \272  ",a,a,a);
                    break;
                case 29:
                    printf("%d %o %x GS  \272  ",a,a,a);
                    break;
                case 30:
                    printf("%d %o %x RS  \272  ",a,a,a);
                    break;
                case 31:
                    printf("%d %o %x US  \272  ",a,a,a);
                    break;
                case 32:
                    printf("%d %o %x SPACE  \272  ",a,a,a);
                    break;
                case 127:
                    printf("%d %o %x DEL  \272  ",a,a,a);
                    break;
                default:
                    printf("%d %o %x %c  \272  ",a,a,a,a);
                    break;
             }

    if((a+1)%5==0) printf("\n");
  }
}

这是输出: 在此处输入图像描述

标签: c

解决方案


请参阅有关如何将空格左填充到固定列宽的答案: Left-pad printf with spaces


推荐阅读