相关疑难解决方法(0)

如何scanf只有整数?

我希望代码运行,直到用户输入整数值.

该代码适用于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)

怎么可以避免?

c scanf

11
推荐指数
4
解决办法
13万
查看次数

C编程 - 循环直到用户输入数字scanf

我需要帮助我的程序错误检查.我要求用户输入一个整数,我想检查用户输入是否是整数.如果没有,请重复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 if-statement scanf

5
推荐指数
1
解决办法
2万
查看次数

防止用户输入错误的数据类型

可能重复:
如果用户输入非数字字符,如何仅扫描整数并重复读取?

嗨,我是c的新手,我正在编写一个程序,要求用户输入一个整数,如果它不符合某个范围内的标准,比如lass 20,但大于5.它会询问用户再次输入值.

但是我想知道如果我输入一个角色会发生什么,并且它创造了一个无限循环.

所以我想知道是否有一种方法或特定功能将检查输入的值以查看它是否是正确的数据类型.而且我没有重新塑造用户.

c

-2
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×3

scanf ×2

if-statement ×1