C++中,如何跳出 while( cin >> temp)循环

C++中,如何跳出 while( cin >> temp)循环

    • 问题描述
    • 解决过程
    • 参考内容

问题描述

运行 《Essential C++》练习 1.6 的代码示例:
编写一个程序,从标准输入设备读取一串整数,并将读入的整数依次放到 array 及 vector,然后遍历这两种容器,求取数值总和。将总和及平均值输出至标准输出设备。

程序一直处于while( cin >> temp )循环中,等待命令窗口的输入,无法跳出循环执行之后的代码。

代码如下:

// 使用vector实现
#include 
#include 
using namespace std;

int main()
{
    vector<int> ivec;
    int ival;
    while ( cin >> ival )
    {
        // 将新输入内容添加到ivec之后
        ivec.push_back( ival );
    }
    // 我们可以在数值被输入时就实时计算总和
    // 这里的做法是遍历vector的元素,一一累加

    int sum = 0;
    for (int ix = 0; ix < ivec.size(); ix++)
    {
        sum += ivec[ ix ];
    }
    int average = sum / ivec.size();
    
    cout << "Sum of " << ivec.size()
         << " elements: " << sum
         << ". Average: " << average << endl;

    return 0;
}

输入数据并回车,仍处于循环中。

C++中,如何跳出 while( cin >> temp)循环_第1张图片

解决过程

搜索 “while ( cin >> ival )” 相关问题。参考CSDN论坛中的讨论,跳出循环的方法包括:

  1. 输入与定义不同的数据类型。上述代码定义的为 int 整型。
  2. 使用 Ctrl+DCtrl+C来终止输入流。具体内容可以参考冲出黑暗的博客。

C++中,如何跳出 while( cin >> temp)循环_第2张图片

最好不要使用 while ( cin >> ival ) 循环。

参考内容

  1. while()如何结束. CSDN论坛
  2. 冲出黑暗. 关于c++ 中while(cin>>temp)相关问题搜集的一些知识. CSDN博客

你可能感兴趣的:(一些问题,c++)