关于 printf \t 在 "C Programming A Modern Approach 2nd Edition"
About printf \t in the "C Programming A Modern Approach 2nd Edition"
当我尝试 运行 这段代码时,它在代码的第一行 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;
}
结果:
其实这段代码来源于课本
C Programming A Modern Approach 2nd Edition
来自 King K.N
第 41 页部分 "Escape Sequences"
.
不知道大王K.N是不是也用eclipse
制表符始终是一个字节,在 ASCII 中,值为 9。
它的解释是由文本渲染器定义的,而不是由语言标准、编译器、OS 等定义的。通常它将光标前进到某个 N 的倍数。N 最常见的选择是4 或 8,但这并不意味着制表符占用 4 个字节。
一些文本编辑器用 space 替换制表符。插入制表符可能会导致文件大小增加 4 个字节,但这些字节是 space,而不是制表符。
您不能依赖以任何特定方式格式化的选项卡,除非您可以保证程序的输出将使用特定配置的特定查看器显示。如果您需要 space 个字符,请使用 space 个字符并且不要使用制表符作为快捷方式。
当我尝试 运行 这段代码时,它在代码的第一行 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;
}
结果:
其实这段代码来源于课本
C Programming A Modern Approach 2nd Edition
来自 King K.N
第 41 页部分 "Escape Sequences"
.
不知道大王K.N是不是也用eclipse
制表符始终是一个字节,在 ASCII 中,值为 9。
它的解释是由文本渲染器定义的,而不是由语言标准、编译器、OS 等定义的。通常它将光标前进到某个 N 的倍数。N 最常见的选择是4 或 8,但这并不意味着制表符占用 4 个字节。
一些文本编辑器用 space 替换制表符。插入制表符可能会导致文件大小增加 4 个字节,但这些字节是 space,而不是制表符。
您不能依赖以任何特定方式格式化的选项卡,除非您可以保证程序的输出将使用特定配置的特定查看器显示。如果您需要 space 个字符,请使用 space 个字符并且不要使用制表符作为快捷方式。