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 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web

javascript -- 变量

961
来自专栏腾讯NEXT学位

前端简洁并实用的工具类

31413
来自专栏北京马哥教育

Python 条件语句

文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间3分钟,文末有秘密! Python 条件语句 Python条件语句是通过一条或多条语句的执行...

3667
来自专栏Brian

C语言心得一

C语言学习 ---- C语言是一个非常灵活且高效的语言,在学习的过程中总会有很多坑。最近有一个项目是混合编程,高性能部分采用C/C++来完成,数据处理和分析采用...

3716
来自专栏magicsoar

C语言和go语言之间的交互 - C语言中使用go语言,使用的go语言又使用了c语言

一、go语言中使用C语言 go代码中使用C代码,在go语言的函数块中,以注释的方式写入C代码,然后紧跟import “C” 即可在go代码中使用C函数 ? 代码...

36410
来自专栏coding

实例讲解PHP异常PHP异常的概念内置异常类异常可以冒泡传递自定义异常类自定义异常处理器像处理异常一样处理错误

2864
来自专栏重庆的技术分享区

关于eslint使用规则,和各种报错对应规则。

ESLint 由 JavaScript 红宝书 作者 Nicholas C. Zakas 编写, 2013 年发布第一个版本。 NCZ 的初衷不是重复造一个轮子...

1.1K7
来自专栏py+selenium

python爬虫笔记之re.match匹配,与search、findall区别

网上的定义【 从要匹配的字符串的头部开始,当匹配到string的尾部还没有匹配结束时,返回None;  当匹配过程中出现了无法匹配的字母,返回None。】 

2K3
来自专栏deepcc

javascript 数据类型

2928
来自专栏公众号文章

Golang 入门系列(二)学习Go语言需要注意的坑

上一章节我们已经了解了 Go 环境的配置,不了解的,请查看前面的文章 https://www.cnblogs.com/zhangweizhong/p/94599...

1354

扫码关注云+社区

领取腾讯云代金券