这个怎么做到循环一次输入一次输出一次呢?

为什么会输出两次请输入你想进行的操作呢

img

这里的输入后面加getchar();吸收掉回车符,不然n会直接读取回车

img

因为当你输入的不是a、b、c、d的时候,会执行这两句

img

13行的scanf先输入一次,然后进入while循环
在while循环中,根据n的值执行相应任务。
任务执行完后,重新通过scanf输入一次
从而实现 输入一次、输出一次,再输入,再输出,直到输入的值等于e才结束循环。

那不是个while循环么 如果你不输入e退出 就会一直走菜单目录 然后方法结束后又回到while里 无线循环没毛病

有输入缓存,在while里加一个getchar();

scanf("%c",&n);后面加上getchar(),消除回车对输入的影响