回复 8楼 晴雨后
scanf加*号是把这个输入忽略掉,但同样需要输入,就是舍弃这个输入的意思,舍弃掉enter(换行符),其实这个你不加%*c也无所谓。输入%c的时候就很有用了。
输入%c时:
scanf("%c", &ch1);
//这样的语句会把enter(换行)读取在输入缓冲区中
scanf("%c", &ch2);
//这样一来,换行就直接作为这次的输入直接赋给ch2,在你看来就是直接跳过这次输入了
解决办法有几个,简单的就是:
方法一:scanf("%c%*c", &ch1);
scanf("%c%*c", &ch2); //把换行舍弃掉
方法二:scanf("%c", &ch1); getchar();
scanf("%c", &ch2); getchar();
//用一个getchar把换行给接收了
方法三:scanf("%c", &ch1); fflush(stdin);
scanf("%c", &ch2); fflush(stdin);
//清理输入缓冲区
[此贴子已经被作者于2016-11-10 11:24编辑过]