setvbuf行为在VS 2015中有所不同

时间:2016-02-06 19:27:39

标签: c visual-studio-2015

我想从Visual Studio 2013升级到Visual Studio 2015,但是当我转换了一些代码时,我遇到了这种奇怪的行为。以下代码在VS 2013中工作正常。如果我注释掉setvbuf()命令,它也可以工作。但是当我在VS 2015中运行此代码时,fgets()会持续累积输入,直到我输入偶数个字符。这种行为是一个错误,还是我缺少的东西?

#include <stdio.h>

int main(int argc, char* argv[])
{
    setvbuf(stdin, NULL, _IONBF, 0);
    char buf[256];

    printf("Waiting for input\n");
    fgets(buf, 80, stdin);

    printf("received %s\n", buf);
    return 0;
}

0 个答案:

没有答案