C 将活动位置移动到当前行上的下一个制表符位置

C 将活动位置移动到当前行上的下一个制表符位置,c,C,根据C标准(5.2.2字符显示语义): \t(水平选项卡)将活动位置移动到下一个水平位置 当前行上的制表位置如果活动位置处于 或超过最后定义的水平列表位置,行为 显示设备的尺寸未指定 有人能给我一个适用的例子吗?比如说,你的文本控制台有80个字符宽,制表位置是0,8,16,….72。 根据标准,您知道如果向控制台发送(打印)一个制表字符,光标将移动到第8个位置。如果是两个,则转到第16位。。。。如果是九,则转到第72位。但如果发送更多表格,则不会指定光标的位置。例如,在我当前的控制台上,在这种情

根据C标准(5.2.2字符显示语义):

\t(水平选项卡)将活动位置移动到下一个水平位置 当前行上的制表位置如果活动位置处于 或超过最后定义的水平列表位置,行为 显示设备的尺寸未指定


有人能给我一个适用的例子吗?

比如说,你的文本控制台有80个字符宽,制表位置是0,8,16,….72。 根据标准,您知道如果向控制台发送(打印)一个制表字符,光标将移动到第8个位置。如果是两个,则转到第16位。。。。如果是九,则转到第72位。但如果发送更多表格,则不会指定光标的位置。例如,在我当前的控制台上,在这种情况下,它被放置在最右边(79)的位置,但我们决不能依赖这种假设。

关于选项卡

大多数终端程序每第8列都有一个制表位。
  • 对于您打印的每一个“\t”,光标将移动到下一个可能的位置(通常为8个空格)。
  • 如果控制台中有N个制表字符的空间,您可以安全地从0打印到N“\t”。
  • 假设我的微型控制台只有4个选项卡的空间,并且(在新行之后)我有下面的代码

    printf ( "\t\t\t\t\t" );  // As you can see...
    //...here I want to put 5 tabulation tabs on screen 
    
    在这种情况下,我们不知道最后一个\t将如何打印


    注意:有时,如果您打印了许多\t类似的内容
    printf(“\t\t\t…\t\t”);
    光标移到前几行,但我们不能确定它是否会发生。

    您能提供一个printf示例使其更简单吗?@Sabrina-Uh.
    printf(“\t\t\t\t\t\t\t\t\t\t”);
    ?没错!(但可能需要更多的例子才能到达最右边的位置)
    如果活动位置位于或超过上次定义的水平制表位置
    我认为这是完全不同的。
    printf(“\t\r\t”);
    我可以承认我的问题真的很愚蠢。非常感谢