使用Xcode 6的fgets()的行为非常奇怪

使用Xcode 6的fgets()的行为非常奇怪,c,xcode,fgets,C,Xcode,Fgets,下面几行代码的行为非常奇怪: int running = TRUE; char *input = (char*)calloc(256, sizeof(char)); while(running) { printf("Enter command: "); fgets(input, MAXINPUT, stdin); processInput(input); } 当我在XCode控制台中手动输入文本时,传递给processInput函数的输入将被我输入的数据填充,但当我粘

下面几行代码的行为非常奇怪:

int running = TRUE;
char *input = (char*)calloc(256, sizeof(char));

while(running) {
    printf("Enter command: ");
    fgets(input, MAXINPUT, stdin);
    processInput(input);
}
当我在XCode控制台中手动输入文本时,传递给processInput函数的输入将被我输入的数据填充,但当我粘贴一行文本而不是手动输入时,它只向processInput传递“\n”字符。即使我先手动键入这一行,然后复制过去,它也不会工作。最奇怪的是,它对我有效,但当我在程序中进行更改时,我突然意识到它停止工作了,我还没有做与这部分代码相关的更改

怎么了?
谢谢。

尝试将同一行粘贴到文本编辑器中,并查看它是否粘贴到新行上,即查看粘贴行的第一个字符是否为“\n”。@dasblinkenlight,否,是否保留在同一行256>=MAXINPUT?输入!=空?@chux,不。我想是个虫子。我对ProcessInput行进行了注释,并添加了代码printf%s,输入如下。XCode花了一段时间重新编译,并开始打印输入值。在此之后,我取消了ProcessInput的注释并删除了printf。。。它开始起作用了。在此之前,我尝试过执行clean,当然还有build,但直到我更改了一个代码之后才有所帮助。如果calloc返回NULL,那么代码必须处理内存不足的情况。