C标记来自stdin的输入

C标记来自stdin的输入,c,strtok,C,Strtok,我正在解析从stdin获得的命令。我的代码几乎可以工作。它打印除第一个令牌外的所有令牌。下面是我的代码 /* Read a command line */ if (!fgets(line, 1024, stdin)) return 0; char *p = strtok (line, " \n"); while (p != NULL) {

我正在解析从stdin获得的命令。我的代码几乎可以工作。它打印除第一个令牌外的所有令牌。下面是我的代码

            /* Read a command line */
            if (!fgets(line, 1024, stdin))
                return 0;

            char *p = strtok (line, " \n");
            while (p != NULL)
            {
                Array[tokenscounter++]  = p;
                p = strtok (NULL, " \n");

            }




  }
  return 0;
}

当我打印存储在数组中的所有令牌时,它不会打印第一个令牌。为什么会这样?

可能不是你的问题,但我认为
fflush(NULL)
没有任何作用。@John3136我已经更新了这个问题。@SteveSummit即使在fflush(NULL)之后;没有任何改变。你的程序对我来说运行正常(在我填写了一些缺失的细节之后)。因此,我怀疑您显示给我们的代码不是您正在运行的代码,这意味着问题出在我们看不到的地方。在
令牌计数器之前是否应该有注释前缀?