C - 从输入流中读取,制表符为空格

C - Read from input stream, tab as spaces

我有点卡住了,希望有人能快速看一下我做错了什么。我想让制表符算作输出空间而不是制表符。在这种情况下,我使用 3 个空格 = 1 个制表符。我假设这可能与我设置第一个 while 语句的方式有关,因为现在它正在将选项卡作为选项卡读取。

int main()
{
  int i, c;
  int N = 3;

  while ((c = getchar ()) != EOF && c != '\n')
  putchar (c);
  while ((c = getchar()) == '\t')
  for (i=1; i<=N; i++) 
    {
      putchar(' ');
    }
  system("Pause");
}

试试这个:

int main()
{
    int i, c;
    int N = 3;

    // exit on Ctrl-C
    while((c = getch()) != 3)
    {
        if(c == '\t')
        {
            for(i=1; i<=N; i++)
            {
                putchar(' ');
            }
        }
        else if(c == '\r')
        {
            putchar('\r');
            putchar('\n');
        }
        else
        {
            putchar(c);
        }
    }
}