c/c++无结束标志时,输入一串int型

来源:互联网 发布:linux 网络编程本地ip 编辑:程序博客网 时间:2024/05/21 10:14

今天在写作业的时候遇到一个问题:
这里写图片描述

这里的所有数字都是有效的没有结束标志,而且没有正负的限制,长度也是不确定的,那么怎么将这一串数字存放进一个数组呢?

一开始我的设想是:

int array[100],num,i=0;while(cin>>num){    array[i]=num;    i++;}

当缓存区所有的数字都被cin获取,自然返回false,跳出循环。
执行的时候会发现无论按多少次回车(enter)都不能结束循环
,经过查找资料发现cin>>num是有返回值的,只要符合num的条件,都会返回true。而且cin会自动忽略tab space enter,也就是说你输入再多enter,cin>>num都看不到,返回值一直是true。

经过改进:

int array[100],num,i=0;char c;do{    cin>>num;//输入num    array[i++]=num;//储存,并让i自增,为下一次做准备    c=getchar();//获得缓存区下一个字符}while(c!='\n');//当这个字符不是换行符enter的时候,继续执行循环

完成!

阅读全文
1 0
原创粉丝点击