#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”,它也属于一个字符被写入了缓冲区内所以被赋值给变量了,就不用你输入了。
1.可以这样解决
#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; }
2.或这样
#include <stdio.h> int main() { char a; int b; scanf("%d\n",&b); //在输入流中强制加一个换行符 scanf("%c",&a); /******************************/ printf("%d",b); printf("%c",a); return 0; }