簡體   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