scanf()中的%c 不能正常输入的问题

来源:互联网 发布:网络策划部需要做什么 编辑:程序博客网 时间:2024/05/16 03:05
#include <stdio.h>int main(){    char a;    int b;    scanf("%d",&b);    scanf("%c",&a);/******************************/    printf("%d",b);    printf("%c",a);    return 0;    /*    应该输入一个整型一个字符型变    量,然后把它们输出,但是现在    只能输入一个整型变量,很蛋疼    的问题吧!!    */}

%c是在缓冲区内找到一个字符赋值给变量。输入变量时一般用回车来结束也就是“\n”,它也属于一个字符被写入了缓冲区内所以被赋值给变量了,就不用你输入了。

可以这样解决

#include <stdio.h>int main(){    char a;    int b;    scanf("%d",&b);    getchar();//   getchar作用和%c一样,这样就能去除干扰了    scanf("%c",&a);/******************************/    printf("%d",b);    printf("%c",a);    return 0;}

还可以这样

#include <stdio.h>int main(){    char a;    int b;    scanf("%d\n",&b);    //在输入流中强制加一个换行符    scanf("%c",&a);/******************************/    printf("%d",b);    printf("%c",a);    return 0;}


1 0
原创粉丝点击