水平制表符(‘\t‘)

水平制表符(‘\t‘)作为一名 C 语言蒟蒻 我自己曾经忽略了 t 的作用 特作此文 警戒自己不要忽略小的知识点 文中结合了部分自己的思考 仅供参考 水平制表符

大家好,欢迎来到IT知识分享网。

前言:

作为一名C语言蒟蒻,我自己曾经忽略了’\t’的作用,特作此文,警戒自己不要忽略小的知识点,文中结合了部分自己的思考,仅供参考!

引例:

请设计一个程序打印如下乘法表

1*1=1
1*2=2   2*2=4
1*3=3   2*3=6    3*3=9
1*4=4   2*4=8    3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

 这个题目看似简单,事实上很容易写出问题。

错误示范:

#include<stdio.h> int main() { for(int i = 1; i < 10; i++) { for(int j = 1;j <= i; j++) { printf("%d*%d=%d ", j, i, i * j); } printf("\n"); } return 0; }

结果(不包括选框和文字框,编译器为Dev-C++6.7.5下同)

水平制表符(‘\t‘)

 发现对齐有问题,尝试更改输出语句。

printf("%d*%d=%2d ", j, i, i * j);

结果:

水平制表符(‘\t‘)

对齐格式依旧不对。

正确写法:

#include<stdio.h> int main() { for(int i = 1; i < 10; i++) { for(int j = 1;j <= i; j++) { printf("%d*%d=%d\t", j, i, i * j); } printf("\n"); } return 0; }

结果:

水平制表符(‘\t‘)

 成功对齐!

习题参考:

NCCL/Unit-1/Lesson-6.md at master · limingth/NCCL (github.com)

‘\t’作用说明:

可以参考:

水平制表符 \t 和 垂直制表符\v的区别-CSDN博客

这里解释一下最后一句(事实上这句话不严谨,对八个以上字符有理解歧义):

每8个字符可以看作一个水平制表符,如果遇到 \t 之前未满8个字符 则 \t 就补空格直到满8个

 我们通过三个实验进一步阐释:

#include<stdio.h> int main() { printf("实验1:\n"); printf("\t#\n"); printf("#\n"); printf("实验2:\n"); printf("\t#\n"); printf("#\n"); printf("实验3:\n"); printf("\t#\n"); printf("45678#\n"); printf("实验4:\n"); printf("4567\t#\n"); printf("45678#\n"); return 0; }

输出结果(分为两行,第一行为实验组,第二行为对照组):

水平制表符(‘\t‘)

 结论分析:

实验1:说明单独一个’\t’占据8个字符。

实验2,4:如果’\t’前面字符数目对8取模不为0,则用最少数目的空格补至字符数对8取模为0。

实验3:’\t’至少补1个空格。

尾结:

学习路上不要轻视小的知识点,学无止境,气有浩然。

写于2024.1.25

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/123196.html

(0)
上一篇 2024-11-19 18:15
下一篇 2024-11-19 18:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信