2system("pause");到底怎么用?

[复制链接]
查看11 | 回复2 | 2008-8-9 00:39:41 | 显示全部楼层 |阅读模式
先看如下代码
#include
#include
main()
{
int a,i;

float c,b,aver;

c=0;
cout>a;
for(i=1;ib;
c+=b;
}
aver=c/a;
cout<<aver;
system("pause");为什么不是先执行cout<<aver;?,而先执行system("pause");
}

回复

使用道具 举报

千问 | 2008-8-9 00:39:41 | 显示全部楼层
这是缓冲区的问题,你可以去搜索一下,解释这方面问题的内容有不少。简要说一下,输入/输出缓冲区,是为了减少程序访问I/O带来中断而设的一段空间。当程序满足某个刷新条件时,那就将清理缓冲区。这里只说一下输出缓冲区。(1)输出缓冲区溢出(2)遇到下一条输入语句(3)使用刷新缓冲区迫使清除(4)程序结束。结合你的程序说,语句cout<<aver;的后面没有任何一种输出缓冲区内容的操作,因此缓冲区的内容不会输出到cout的标准输出设备(也就是屏幕)上。所以先执行了system("pause"),直到程序结束之后才输出了aver
回复

使用道具 举报

千问 | 2008-8-9 00:39:41 | 显示全部楼层
你把cout<<aver;改成cout<<aver<<endl;就知道为什么了因为要打印的东西在缓存里,你不输入换行有时候是出不来的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行