qq_39259295 2019-10-30 15:26 采纳率: 57.1%
浏览 629
已采纳

c++ vector容器中push_back函数输入一组数据时为什么跳不出输入的while循环?

刚开始学c++,用的书是《c++ primer》的第五版,题目如下:
图片说明
代码如下:

#include<iostream>
#include<vector>
using namespace::std;
int main()
{
    vector<int>num;
    int word, sum=0;
    while (cin >> word)
    {
        num.push_back(word);
    }
    for (unsigned int i = 0; i < num.size() - 1; i++)
        {
            sum = num[i] + num[i + 1];
        }
    cout << sum << endl;
}

调试结果:
图片说明

写第一问时候发现调试时候输入之后按回车没有反应了,如果我把下面的求和程序放入while循环中其实可以输出结果,只不过结果有些问题。
试了下紧挨着在while循环下面cout<<"a";但是也没有输出
感觉是因为输入结束之后一直跳不出push_back的while循环,
书上和网上的例子都是这样,但我的就不行,迷惑????

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-10-30 15:34
    关注

    因为你没有设置循环结束条件,只能通过 cin 的输入结束方式退出循环。
    在你输入完字符串后,键下回车后,再ctrl+Z(windows环境下是ctrl+z,而linux/unix下是ctrl+d)试试能不能结束循环。
    或者换种思路,如果 cin 接收到的某个固定字符时作为跳出循环的条件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料