scanf()在输入int型变量后无法正确读入char型变量的解决方案

//问题程序
//无法正确读入char型变量b的值
//b变量存储的是输入变量a的值结束后按下的回车符
#include<stdio.h>
int main()
{
    int a;
    char b;
    float c;
    printf("Please input an integer:");
    scanf("%d", &a);
    printf("integer: %d\n", a);
    printf("Please input a character:");
    scanf("%c", &b);
    printf("character: %c\n", b);
    printf("Please input a float number:");
    scanf("%f", &c);
    printf("float: %f\n", c);
    return 0;
}

 

//修改方案1
#include<stdio.h>
int main()
{
    int a;
    char b;
    float c;
    printf("Please input an integer:");
    scanf("%d", &a);
    getchar();//接收按下的回车符
    printf("integer: %d\n", a);
    printf("Please input a character:");
    scanf("%c", &b);
    printf("character: %c\n", b);
    printf("Please input a float number:");
    scanf("%f", &c);
    printf("float: %f\n", c);
    return 0;
}

 

//修改方案2
#include<stdio.h>
int main()
{
    int a;
    char b;
    float c;
    printf("Please input an integer:");
    scanf("%d", &a);
    printf("integer: %d\n", a);
    printf("Please input a character:");
    scanf(" %c", &b);//在"%c"前加一个空格
    printf("character: %c\n", b);
    printf("Please input a float number:");
    scanf("%f", &c);
    printf("float: %f\n", c);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42048463/article/details/114942793