注册 登录
编程论坛 C++教室

关于简单的while(cin >> i)读多个数据的问题

Susurrant 发布于 2013-11-01 12:52, 641 次点击
先上代码,很简单:
程序代码:

#include <iostream>
#include <vector>
using namespace std;

int main()
{

    vector<int> nums;
    int num;

    while(cin>>num)
        nums.push_back(num);

    for(int i = 0; i < nums.size(); i++)
        cout << nums[i] << " ";

    return 0;
}


运行输入1 2 3,回车后没有输出,是不能这样写吗?
while(cin>>num)
        nums.push_back(num);
应该如何改正呢?
7 回复
#2
peach54602013-11-01 13:00
while的退出条件是什么?
#3
i802862013-11-01 13:46
CTRL+Z结束输入,然后在return 0之前加一句system("pause")即可

PS:vector自带函数size输出的类型不是int型的,虽然编译时是个警告错误,但也有可能会让程序崩溃

[ 本帖最后由 i80286 于 2013-11-1 13:49 编辑 ]
#4
peach54602013-11-01 13:57
回复 3楼 i80286
不做减法一般不会
#5
Susurrant2013-11-01 14:50
回复 2楼 peach5460
估计是得加退出标志,如果文件流读取数据的话,读到文件末就自动结束while语句了。
可能控制台输入并不是自动结束。Thx!
#6
Susurrant2013-11-01 14:54
回复 3楼 i80286
运行后不按回车按CTRL+Z键?结果输入了^Z,即显示 1 2 3^Z, 也没有输出。输入法是英文的。
system("pause")是防止程序自动退出吧。

谢谢解答!
#7
i802862013-11-01 15:04
程序运行到最后总归是要自动退出的,system("pause")是指暂停程序的运行,调试的时候能让你看到程序的输出结果,当然这里指的是VS环境
#8
sh3166301032013-11-09 20:51
1