1549929701 2015-09-12 15:57 采纳率: 0%
浏览 1952

C语言用scanf清理输入缓存的一个程序

源程序如下:
#include
int main(){
int num;
printf("输入数字:");
scanf("%d",&num);
printf("输入了数字:%d\n",num);

printf("是否继续测试:【Y/N】");
scanf("%*[^\n]");
scanf("%*e");
char c;
scanf( "%c" , &c );
printf("%c\n",c);

}
运行程序时,输入数字按回车键后,待提示"是否继续测试:【Y/N】"时输入'n'以外的其它字符,程序会在打印一遍输入的字符后结束,
为什么仅当输入字符'n'后程序依旧等待输入?这个是C语言的什么机关还是源程序哪里的问题?

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-09-12 16:09
    关注
     scanf("%*[^\n]");
    除了\\n以外,它会一直等待
    
    评论

报告相同问题?

悬赏问题

  • ¥20 matlab计算中误差
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊