【发布时间】:2015-10-01 23:05:53
【问题描述】:
寻找任何可以帮助我处理代码格式的提示。我需要在 C 中打印 ASCII 表,但由于 C 的程序性质,我无法获得正确的表格式。
基本上这是我的代码:
#include <stdio.h>
char header[] = "Dec Hex Oct Char |";
char header2[] = "-----------------|";
int main(){
char i;
printf("%s %s %s %s\n",header,header,header,header);
printf("%s %s %s %s\n",header2,header2,header2,header2);
for(i = 0;i<=31;i++){
printf("%03d %02X %03o |",i,i,i);
}
return 0;
}
我的输出看起来像这样:
Dec 十六进制 Oct 字符 | Dec Hex Oct 字符 | Dec 十六进制 Oct 字符 |
000 00 000
001 00 001
...
031 1F 037
现在我需要其余的列来生成相同的东西,除了 ASCII 数字 32-127
我明白为什么它没有按照我想要的方式生成..但是当我尝试在第一个循环中嵌套另一个 for 循环(打印 ASCII 数字 32-63)时,它编译得不是很好。
本质上我是在问是否有一种方法可以并行运行 for 循环或在 for() 中使用另一个函数,以便它可以在开始下一行之前在同一行上打印表的其余部分。
【问题讨论】:
-
一种方法是在当前行下方再添加两行
printf:printf("%03d %02X %03o |",i+32,i+32,i+32);printf("%03d %02X %03o |",i+64,i+64,i+64);。当然还有其他方法可以做到这一点。实际上,您甚至可以将其全部放入printf中。我会把它作为练习留给你。 -
哈哈! “由于 C 的程序性质,我无法获得正确的表格格式”C 是图灵完备的!
-
“它编译得不太好”。如果您需要帮助,请显示该部分代码和确切的编译器错误(不要只是在第一个障碍时放弃!)。
-
不要因为你缺乏编程知识而责备C。
-
@user3629249:最近扩展了 ASCII 吗?上次我检查它是一个 7 位代码...