繁体   English   中英

请求int输入,如何防范char?

[英]Requesting int input, how to guard against char?

我要求输入int,然后检查它是否等于正确的答案,但是如何防止用户输入字符?

    int main()
    {
       int response;
       int answer;

       scanf("%f", &response);
       if(response == answer)
       {
         //Correct! 
       }
       else
       {
         //Incorrect!
       }
    }

scanf(3)给出您应该使用的结果(成功读取项目的计数)。 而且您的%f不正确,因此您应该编写代码

if (scanf(" %d", &response)==1) { 
  /// did got some response
}

我考虑了好评论乔纳森·莱弗勒Soumya Koumar的答案 ...

您将必须使用%d从输入扫描int

根据scanf定义,如果成功则返回扫描的项目数,如果匹配失败则返回0。 因此,如果在标准输入中输入char而不是整数 ,则它将返回0作为返回值。

您可以执行以下操作:

if (scanf(....) == 0) { 
    /* error */ 
} else {
    /* do my work */
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM