为什么这段代码打印0到297但不是0到大于297的任何值?

时间:2016-11-05 16:11:14

标签: c++

正如您所看到的,在此代码中,我只是尝试打印0到m。香港专业教育学院使用“m”作为一个变量。(点击“n”,主要是“m”在这里)如果我输入m = 5(我会键入4键输入“n”但是忽略了这一点, “m”将是5)。 所以代码将打印0 1 2 3 4 5。我面临的问题是,只有当m为297或更小时,才能完美地看到0到m数。当我输入m超过297时,例如500。我只能看到203 - 500的数字。为什么我没有看到0 - 500?

#include <bits/stdc++.h>
using namespace std;
int main() {
  long n, m;


  cin >> n;
  m = n + 1;

  vector<long> v(0);

  for (long i = 0; i < m; ++i) {
    v.push_back(i);
  }

  for (long j = 0; j < m; ++j) {
    cout << (v.at(j)) << endl;
  }
  return 0;
}

2 个答案:

答案 0 :(得分:4)

这打印[0,500]对我来说很好,所以它可能是一个回滚限制。如果您正在使用终端,请在终端上Check the settings

如果您使用类似unix的系统,可以使用wc命令计算打印的行数并自行确认:

$ echo "500" | ./a.out | wc -l
501

您也可以将输出发送到less,这样您就可以滚动它了

$ echo "500" | ./a.out | less

答案 1 :(得分:1)

因为您已将终端配置为仅显示最近的298行。

将其配置为显示更多所谓的&#34;回滚&#34;。