C - 从输入流中读取,选项卡作为空格

时间:2015-02-01 19:23:01

标签: c input getchar putchar

我有点陷入困境,希望有人可以快速查看我做错了什么。我希望将标签计为输出空间而不是标签。在这种情况下,我使用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");
}

1 个答案:

答案 0 :(得分:2)

试试这个:

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);
        }
    }
}