C++数据个数未知情况下的输入方法

我们经常需要输入一串数,而数据个数未知。这时候就不能以数据个数作为输入是否结束的判断标准了。

这种情况下,我们可以用以下两种方法输入数据。

方法一:判断回车键(用getchar()==‘\n‘即可判断)

 1 //以整数为例
 2 #include <iostream>
 3 #include <vector>
 4 #include <algorithm>
 5 using namespace std;
 6
 7 int main(){
 8     vector<int> v;
 9     int tmp;
10     while(cin>>tmp){
11         v.push_back(tmp);
12         if(getchar() == ‘\n‘)
13             break;
14     }
15     //输出
16     for(int val:v){
17         cout<<val<<endl;
18     }
19     return 0;
20 }
 1 //以字符串为例
 2 #include <iostream>
 3 #include <vector>
 4 #include <algorithm>
 5 using namespace std;
 6
 7 int main(){
 8     vector<string> v;
 9     string tmp;
10     while(cin>>tmp){
11         v.push_back(tmp);
12         if(getchar() == ‘\n‘)
13             break;
14     }
15     //输出
16     for(string val:v){
17         cout<<val<<endl;
18     }
19     return 0;
20 }

方法二:用istringstream流对象处理

 1 //以字符串为例
 2 #include<iostream>
 3 #include<sstream>       //istringstream
 4 #include<string>
 5 using namespace std;
 6 int main()
 7 {
 8     //string str="I like wahaha! miaomiao~";
 9     string str;
10     cin>>str;
11     istringstream is(str);
12     string s;
13     while(is>>s)
14     {
15         cout<<s<<endl;
16     }
17 }
 1 //以整数为例(先将一行数当做string输入,再进行转换)
 2 #include<iostream>
 3 #include<sstream>       //istringstream
 4 #include<string>
 5 using namespace std;
 6 int main()
 7 {
 8     //string str="0 1 2 33 4 5";
 9     string str;
10     getline(cin,str);
11     istringstream is(str);
12     int s;//这样就转换为int类型了
13     while(is>>s)
14     {
15         cout<<s+1<<endl;//现在已经可以运算了
16     }
17 }
时间: 2024-09-29 22:17:12

C++数据个数未知情况下的输入方法的相关文章

数据库有百万数据量的情况下,分页查询的方法及其优化方式

当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些方法. 准备工作 为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明. 表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含text等大型数据,最大为varch

把cookie以json形式返回,用js来set cookie.(解决手机浏览器未知情况下获取不到cookie)

1.继上一篇随笔,链接点我,解决手机端cookie的问题. 2.上次用cookie+redis实现了session,并且手机浏览器可能回传cookies有问题,所以最后用js取出cookie跟在请求的url后面. 3.但是今天发现了新的问题,js取cookie存的sessionId为空,情况如下: (1)QQ浏览器能获取某些cookie,另一些cookie获取为空,猜测是后台Response SetCookie的时候,手机端浏览器没能良好的接受. (2)UC浏览器测试正常. (3)Safari情

Selenium&#160;WebDriver在不知道元素个数的情况下,完成页面所有元素的遍历

以一个选择企业页面为例,假设事先并不知道用户登录后会有几个企业供选择,但是case又需要遍历各个企业,保证各个企业均可正常被访问,那么就可以用红色标记的方式处理. public class ChooseEnterprise {private WebDriver driver;private String baseUrl;private StringBuffer verificationErrors = new StringBuffer(); @Beforepublic void setUp() 

latex均方极限符号l.i.m在lyx下的输入方法

$\mathop{l.i.m}\limits_{x\to +\infty}$ 命令说明: 1.指定数学环境$$ 2.\mathop{l.i.m}指数学符号自定义为l.i.m 3.\limits_{x\to +\infty}指在l.i.m符号正下面输入趋向符号 ------------------------------------------------------ 输入多行下标 ${ \displaystyle \sum_{ \begin{subarray}{l} 0\le i\le m\\

网络流存在结点情况下的建模方法

每个结点都有一个允许通过的最大容量,成为结点容量. (见<算法竞赛入门经典--训练指南>P365) 假设结点容量为x,边u->v可以进行如下等效 转化为 例题: 51nod 1299  https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1299

在已经给WHERE字段添加索引,分页查询效率还是慢的情况下有什么方法检查或提高性能?

midifan.com/moduleuser-index-416628.htmmidifan.com/moduleuser-index-416627.htmmidifan.com/moduleuser-index-416698.htmmidifan.com/moduleuser-index-416716.htmmidifan.com/moduleuser-index-416750.htmmidifan.com/moduleuser-index-416810.htmmidifan.com/modu

金蝶KIS专业版替换SXS.dll 遭后门清空数据被修改为【恢复数据联系QQ 735330197,2251434429】解决方法 修复工具。

金蝶KIS专业版 替换SXS.dll 遭后门清空数据(凭证被改为:恢复数据联系QQ 735330197,2251434429)恢复解决方法. [客户名称]:山东青岛福隆发纺织品有限公司 [软件名称]:金蝶KIS专业版12.2 [数据库版本]:MS SQL server 2000  [数据库大小]:1GB  . [问题描述]:客户贪图便宜,使用破解版财务软件,破解者破解后内藏了后门,清空所有数据的触发器.用了1年时间后,后门触发器被激活,删除了所有 科目余额表.存货余额.存货往来明细账.修改了所有

(hdu step 5.1.4)Farm Irrigation(在两个节点合并有限制条件的情况下,求集合的个数)

题目: Farm Irrigation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 202 Accepted Submission(s): 104   Problem Description Benny has a spacious farm land to irrigate. The farm land is a rectangle,

TCP Incast 问题TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU)。只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向

TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU).只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向多个存储服务器发起并发TCP请求,且所有服务器同时向客户端发送SRU. 出现的问题: 1)         这种多对一的服务器向客