回复 11楼 ali123654
楼主的不就是要求输入是字符型嘛?你可以试试,我已经试过了,用我填加了一些输出标志的那个试更能看出结果,其中更多原理我也说不清楚了.......
程序代码:
#include<iostream> { char k; int i; for(i=1;i!=3;i++) { std::cout<<"enter k #"<<i<<": "; std::cin>>k; std::cout<<std::endl; switch(k) { case '0': std::cout<<"another\n";break; case '1': std::cout<<"number\n";break; default:std::cout<<"down\n"; } std::cout<<"k:"<<k<<"\ti:"<<i<<std::endl; } return 0; }
C中:
程序代码:
#include<stdio.h> int main() { char k; int i; for(i=1;i!=3;i++) { printf("k #%d:",i); scanf("%c%*c",&k);//这样就可以了,已经清楚原因了,呃,真是得多学呀,是这样的,读入第一个数字后都要回车一下,可回车也是一个字符,会被读入到k中,所以出现了之前的情况,用%*c可以吸收掉回车符,从而可以继续。 printf("\n"); switch(k) { case '0': printf("another\n");break; case '1': printf("number\n");break; default:printf("down\n"); } printf("k:%c\n",k); } return 0; }
[此贴子已经被作者于2016-1-20 09:29编辑过]