C标记来自stdin的输入
我正在解析从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) {
/* 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)之后;没有任何改变。你的程序对我来说运行正常(在我填写了一些缺失的细节之后)。因此,我怀疑您显示给我们的代码不是您正在运行的代码,这意味着问题出在我们看不到的地方。在令牌计数器之前是否应该有注释前缀?