C语言scanf容易引发的bug

来源:互联网 发布:卡尔曼滤波算法程序 编辑:程序博客网 时间:2024/06/05 19:54

C语言scanf容易引发的bug

    int hoge;    char buf[256];    printf("&hoge  %p\n", &hoge);    //(1)    fgets(buf, sizeof(buf), stdin);    sscanf(buf, "%d", &hoge);    //(2)    scanf("%d", &hoge);
  • 在使用scanf时,如果输入的格式和scanf中规定的格式不一样的时候,scanf函数会返回-1,未识别的格式会停留在输入流中。
    有的人会使用fflush(stdin)来处理这种情况,其实这样是错误的。在老版的C语言中fflush是不支持对stdin的处理的,在最新的C++标准中,fflush也可以对stdin刷新缓存了
0 0
原创粉丝点击