c/c++语言开发共享如何确定scanf是否读取格式中指定的内容?

我有一个定义变量int data

该程序使用scanf("%d",&data)从stdin读取数据。 如果来自stdin的数据不是整数,我必须打印错误消息。

我试过if(scanf("%d",&data) ==EOF){ printf("error");return 1;}

它对我不起作用。 那么,我如何确定scanf是否失败或成功?

    scanf的返回值是一个整数,告诉你成功读取了多少项。 如果成功读取了单个整数,则scanf将返回1。

    例如

     int items_read = scanf("%d", &data); if (items_read != 1) { //It was not a proper integer } 

    Stack Overflow上有关于读取整数的很好的讨论。

    scanf返回成功读取的项目数。 您可以通过检查1检查是否失败,因为您正在阅读一个项目:

     if (scanf("%d", &data) != 1) // error 

      以上就是c/c++开发分享如何确定scanf是否读取格式中指定的内容?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/544982.html

      (0)
      上一篇 2021年1月9日
      下一篇 2021年1月9日

      精彩推荐