我想从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;
}