我希望代码运行,直到用户输入整数值.
该代码适用于char和char数组.
我做了以下事情:
#include<stdio.h>
int main()
{
int n;
printf("Please enter an integer: ");
while(scanf("%d",&n) != 1)
{
printf("Please enter an integer: ");
while(getchar() != '\n');
}
printf("You entered: %d\n",n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是如果用户输入一个浮点值scanf
就会接受它.
Please enter an integer: abcd
Please enter an integer: a
Please enter an integer: 5.9
You entered: 5
Run Code Online (Sandbox Code Playgroud)
怎么可以避免?
我需要帮助我的程序错误检查.我要求用户输入一个整数,我想检查用户输入是否是整数.如果没有,请重复scanf.
我的代码:
int main(void){
int number1, number2;
int sum;
//asks user for integers to add
printf("Please enter the first integer to add.");
scanf("%d",&number1);
printf("Please enter the second integer to add.");
scanf("%d",&number2);
//adds integers
sum = number1 + number2;
//prints sum
printf("Sum of %d and %d = %d \n",number1, number2, sum);
//checks if sum is divisable by 3
if(sum%3 == 0){
printf("The sum of these two integers is a multiple of 3!\n");
}else {
printf("The sum of these two integers is …
Run Code Online (Sandbox Code Playgroud) 嗨,我是c的新手,我正在编写一个程序,要求用户输入一个整数,如果它不符合某个范围内的标准,比如lass 20,但大于5.它会询问用户再次输入值.
但是我想知道如果我输入一个角色会发生什么,并且它创造了一个无限循环.
所以我想知道是否有一种方法或特定功能将检查输入的值以查看它是否是正确的数据类型.而且我没有重新塑造用户.