c - 如何对齐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");
}
}
这是输出: 在此处输入图像描述
解决方案
请参阅有关如何将空格左填充到固定列宽的答案: Left-pad printf with spaces
推荐阅读
- python - 如何修复'NoneType'对象在递归函数中没有属性'json'
- python - 向 Spacy 3.0 添加自定义语言并在其中训练管道
- c# - 水印图像尺寸很小并且在另一个图像中重复
- r - 如何将插图放置在 ggplot 上的确切位置并设置 geom_segment 的颜色?
- java - Java 拉绳在代码的早期部分工作正常以计算点数,但在显示游戏结束时不起作用
- node.js - 提交带有多个文本输入和图像的 React 表单
- python - Django db 2个外键之一不返回对象
- java - 在线程之间同步对象的最佳实践
- swift - 在 SwiftUI 中按值对 Json 数据进行分组
- jmeter - 使用 ruby-jmeter 时有没有办法设置 jmeter 属性