【问题标题】:When my pc executes the code below why does it starts with 5? [closed]当我的电脑执行下面的代码时,为什么它以 5 开头? [关闭]
【发布时间】:2016-04-28 10:53:15
【问题描述】:

我是 C++ 的新手。

我希望我的电脑从 1 到 10 计数大约 100 次(数量并不重要),并每次打印当前值。

当我删除(放在注释中)“while”循环时,pc 开始从 1 开始计数。但是当我再次添加 while 循环时,pc 从 5 开始。当我执行代码几次。比 pc 以 6 开头:s

我用 Google 和 Duckduckgo 搜索了互联网,但找不到类似的问题。 Stackoverflow 中已经提出的问题也没有。

#include <iostream>
using namespace std;

int a=0;
int b=1;

int main()
{
    while(b<100){

        for(a=1;a<=10;a++){
            cout << a << endl;
        }

        a=1;
        b++;
    }

    cout<<b <<endl;
    return 0;
}

Result from the code

【问题讨论】:

  • Can't replicate。滚动条在顶部吗?窗口中的输出缓冲区有多大,可能不足以容纳所有行,所以第一行丢失了?
  • 您用来查看的终端(“DOS 窗口”)只有有限的回滚量。之前的行只是迷路了,向上滚动无法到达,因为它只会保存一定数量的行供您查看。如果您尝试使用不同的终端仿真器(我猜您在 Windows 上不走运)或运行程序,例如on ideone,您将看到您的程序正在按照您的预期运行,只是您用来查看结果的程序没有按照您的预期运行。
  • 水平打印:)
  • 那也可以解决,谢谢^^

标签: c++ loops for-loop printing while-loop


【解决方案1】:

事实上,您的代码没有任何问题。您作为屏幕截图提供的输出显示终端顶部显示 5 或 6,但这只是因为您的程序产生了大约 991 行输出,这可能会溢出终端回滚缓冲区。

尝试将 while 循环从 100 更改为 3 并查看它是否有效。会的。

【讨论】:

  • 谢谢 :D 解决了它^^
猜你喜欢
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多