您的位置:首页 > 其它

做毕业设计遇到的关于fgets()函数的问题

2013-03-29 09:37 405 查看
毕业设计中,遇到了关于fgets函数的问题,代码经过整理大概如下:

int main()

{

char select[100];

char msg[100];

scanf("%s",select);

getchar(); //fflush(stdin);

if(strcmp(select,"YES") == 0)

{

printf("input words:");

fgets(msg,sizeof(msg),stdin);

printf("msg is %s\n",msg);

}

return 0;

}

当代码中没有加getchar()时,程序无法从键盘输入msg,因为缓冲区中有“YES\n";fgets()直接读取了'\n',所以就没法进行标准输入,但是为什么在用fflush清空缓冲区在VC++6.0可以获得msg的值,但是在虚拟机底下用gcc编译还是无法获得msg的值?原来搞了半天是GCC底下不支持fflush()函数,可用setbuf(stdin,NULL)代替。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: