返回信息流【 在 PtwCJ 的大作中提到: 】
: %c前后加上空格
: " %c "
正解。顺便说下上面大家的讨论中出现的问题:
1. fflush(FILE *stream)这个函数的作用是刷新输出流,如fflush(stdout)。但是如果stream不是一个输出流的话,它的行为是为定义的。也即,c标准没有说明比如fflush(stdin)时函数该做什么。但是微软的编译器一般均把它实现为清空输入流的缓冲区,在gcc中却没有实现。因此在这点上容易引起误解。
2. scanf这个函数比较细节,一般情况下它对输入是忽略空白符的(除了%c之外),哪怕格式是%s。像楼主原先的代码,当输入'y'或'n'时,缓冲区中原来存在一个上次输入整数时遗留的空白符,用%c格式时就会读取这个空白符造成错误。在%c之前加上空格,就可以忽略上次遗留的空白符,从而解决问题。
这是一条镜像帖。来源:北邮人论坛 / cpp / #26675同步于 2009/7/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
Re: [求助]小白,问个问题
lojo
2009/7/28镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。