返回信息流#include<cstdlib>
using namespace std;
int main()
{
char a, b;
printf("fads");
scanf("%c", &a);
printf("fadf");
scanf("%c", &b);
printf("%c", b);
system("pause");
return 0;
}
这是随便写的一个程序。 按实现的想法。 先输出一段字符,再输入一个字符到a,接着又输出一段字符,再输入一个字符到b,最后输入b。可是。程序结果会有问题。
这种问题我以前也经常碰到。
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22446同步于 2007/11/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
求助c里关于输入输出流的问题,请进
flyshine
2007/11/24镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
程序输出顺序正确,没有错误。以下用引号括起来的是重点。
先打印出一个fads,紧跟着fads之后让你输入一个字符,你输入一个后按回车实际上是输入了两个,此时字符缓冲区存了两个字符,并且输入后,“回显”在屏幕上(回显你输入的字符和那个\n),然后打印fadf,第二个scanf再从字符缓冲区里取字符(因为此时字符缓冲区里还有那个\n,所以没有等待让你输入一个字符就直接将这个\n取出来赋值给b),最后打印这个\n,这样你才能在“新”的一行看到“请按任意键继续。。。”