1

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

    int main()
    {
       int response;
       int answer;

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

2 回答 2

3

您将不得不用于从输入%d中扫描int 。

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

您可以执行以下操作:

if (scanf(....) == 0) { 
    /* error */ 
} else {
    /* do my work */
}
于 2013-11-03T01:07:59.787 回答
3

scanf(3)给出一个结果(成功读取项目的计数),您应该使用它。你%f的不正确,所以你应该编码

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

我在Soumya Koumar的回答中考虑了Jonathan Leffler的好评......

于 2013-11-03T00:57:48.530 回答