mac终端选项卡大小不一致

时间:2018-03-12 21:45:48

标签: c terminal

我正在阅读'C语言'。在本练习中,我应该编写一个程序来替换具有等效空格的制表符。这是我的代码,

#include <stdio.h>

#define TABWIDTH 8

int main() {
    int c;

    while ((c = getchar()) != EOF) {
        if (c == '\t') {
            for (int i = 1; i <= TABWIDTH; ++i) {
                putchar(' ');
                //printf("%d\n", i);
            }
        } else {
            putchar(c);
        }
    }

    return 0;
}

问题是选项卡的大小在mac终端中有点不一致。在我的程序中,我假设它总是8个空格,但在终端中并不总是8个。 这是我得到的输出 选项卡首先

        k // this is tabed
        k // this is 8 spaces

标签位于字符

之后
k        k // this tabed
k          k // this 8 spaces

1 个答案:

答案 0 :(得分:1)

标签转到下一个制表位,它位于第1,9,17,25列等。 在您的示例中,标签前面有 k ,但不计算(因为标签转到第9列),而 k < / strong>在计算空格之前(因为间距忽略制表位)。