QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 981|回复: 9

c++的迷惑

[复制链接]
发表于 2004-9-5 15:29:41 | 显示全部楼层 |阅读模式
#include<iostream.h>
main()
{
        int i,j;
        for(i=0;i<=10;i++)
        {
                for(j=0;j<=10000000;j++)
                {
                        ;
                }
                cout<<'*';
        }
}
请问这个程序是不是每次输出*都延时,怎么不好用啊 .
发表于 2004-9-5 16:07:21 | 显示全部楼层
怎么个不好用法?
回复

使用道具 举报

发表于 2004-9-5 16:19:16 | 显示全部楼层
这个………………你用空循环来延时,效果当然差了。
回复

使用道具 举报

发表于 2004-9-5 16:31:32 | 显示全部楼层
稍微像点样子的c++编译器都会把你的那个空循环拿掉的。不要依赖这种功能来做延时的。
回复

使用道具 举报

发表于 2004-9-5 17:00:29 | 显示全部楼层
昏,直接sleep呀,多累!!
回复

使用道具 举报

 楼主| 发表于 2004-9-5 23:05:36 | 显示全部楼层
谢谢各位朋友的帮助.我想输入*的时候延时,但是输入第一个*之前延时了,*一下子全都输出来了.
回复

使用道具 举报

发表于 2004-9-6 09:25:27 | 显示全部楼层
[code:1]
#include<iostream.h>
main()
{
    int i,j;
    or(i=0;i<=10;i++)
    {
        for(j=0;j<=10000000;j++)
        {
              ;
        }
        cout<<'*';
        fflush(stdout);
    }
}
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-9-6 10:26:27 | 显示全部楼层
谢谢班主回贴,但是请问flush(stdout)什么意思,怎么老包错
回复

使用道具 举报

发表于 2004-9-6 12:17:12 | 显示全部楼层
是fflush(stdout),不是flush(stdout).
刷新标准输出.
回复

使用道具 举报

发表于 2004-9-7 09:38:55 | 显示全部楼层
看来编译器还真没有把你的这个空循环搞掉。估计是你没有开优化参数,否则很可能会被编译器拿掉的,那样不论你怎么搞都不会有延时的。
c++ standard的流都是带缓冲的,所以才会这样,斑竹让你fflush一下就能吧输出给强制刷新了。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-7 13:45 , Processed in 0.041005 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表