回复 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编辑过]








