endl似乎没有执行

时间:2017-06-29 06:54:07

标签: c++ vector newline

我已阅读并重新阅读代码,但我无法找到合理的结论,为什么在运行时,在开始和结束时间之间没有创建换行符。赞赏积极和消极的建议。

((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180; // in sec

2 个答案:

答案 0 :(得分:1)

让我们看看这部分代码。

while (cin >> start) {
    vstart.push_back(start);
}
while (cin >> end) {
    vend.push_back(end);
}

在第一个循环中,读入值直到cin>>start到达文件结束字节,或者以不同方式失败。但你不清楚失败状态。 您必须调用cin.clear();才能在第二个循环中读取新输入。

while (cin >> start) {
    vstart.push_back(start);
}
cin.clear();
while (cin >> end) {
    vend.push_back(end);
}

进一步阅读:Why would we call cin.clear() and cin.ignore() after reading input?

答案 1 :(得分:1)

只要可以成功提取while值,就会执行此int循环。在阅读了7个数字并且将所有输入都放入vstart之后,它并不知道停止。

while (cin >> start) {
    vstart.push_back(start);
}

我认为你想要这样的for循环,包括在读取7个值后停止的逻辑。

for (int i = 0; (i < 7) && (cin >> start); ++i) {
    vstart.push_back(start);
}