ans的定义是char型的,scanf("%*c%c",&ans)写法没错,我是从书上抄下来的,只有这样才能输入scanf("%c",&ans)不能输入,我感觉很奇怪
你这里指的数据可以是字符吗,请说详细一下scanf("%c",&ans)输入和scanf("%*c%c",&ans)输入的区别,我刚开始写scanf("%c",&ans)输入时不执行此语句,换成了scanf("%*c%c",&ans)输入就没问题了
printf("sorry,it's full. could you choice another area? \n");
printf("please chose y==yes or n==no\n");
scanf("%*c%c",&ans);—————————为什么?
是呀
追答利用scanf读取字符型变量时,%c是不会忽略空白字符的,所以如果要读入一个字符,一种方法是利用getchar(),一种是在前边加一个%*c处理掉读进来的空白字符,另一种方法是在%c前边一个空格。编译系统不同,这三种方法的某一种或两种可能不能用,但getchar()目前是可以通用的。
如果你声明char ans1,ans2;
scanf("%c %c",&ans1,&ans2);
printf("%c %c",ans1,ans2);
你会发现ans1的值是空的(0),而ans2的值才是你输入的第一个字符