关于printf \ t在" C编程现代方法第2版"

时间:2015-04-15 04:12:35

标签: c printf

当我尝试运行此代码时,它在第一行代码中的Price之前显示2个TAB,我认为它应该只有1个TAB(4个字节)。

#include <stdio.h>
int main(void)
{
printf("Item\tUnit\tPurchase\n\tPrice\tDate\n");
printf("Item\tUnit\tPurchase\nPrice\tDate\n");

return 0;
}

结果:

enter image description here

实际上这段代码来自教科书  C Programming A Modern Approach 2nd Edition King K.N 第41节"Escape Sequences"

我想知道K.N国王是否也使用了日食。

1 个答案:

答案 0 :(得分:1)

制表符始终是一个字节,ASCII格式,值为9.

它的解释由文本渲染器定义,而不是语言标准,编译器,操作系统等。通常它将光标前进到某个N的倍数.N的最常见选择是4或8,但是并不意味着该选项卡需要4个字节。

一些文本编辑器用空格替换制表符。插入选项卡可能会导致文件大小增加4个字节,但这些字节是空格,而不是制表符。

您不能依赖以任何特定方式格式化的标签,除非您可以保证在特定配置中使用特定查看器显示程序的输出。如果您需要空格字符,请使用空格字符,不要使用制表符作为快捷方式。