专栏首页xiaoxi666的专栏C++数据个数未知情况下的输入方法

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 条评论
登录 后参与评论

相关文章

  • 阅读Java Native源码前的准备

    读java native源代码时,我们一般会去网站下载openjdk8源码http://download.java.net/openjdk/jdk8/promo...

    xiaoxi666
  • 给定一个字符串,问是否能通过添加一个字母将其变为回文串(三种思路)

    xiaoxi666
  • 积累一些不太常用的C/C++语言知识(不断更新)

    xiaoxi666
  • 小朋友学经典算法(12):分割字符串

    在分割字符串之前,先来了解一些跟字符串相关的变量或函数: (1)size_type:size_type由string类类型和vector类类型定义的类型,用以保...

    海天一树
  • 说反话(c++实现)

    输入:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间...

    用户2038589
  • PHP常用库函数介绍+常见疑难问题解答

          最近在苦学PHP,虽然PHP在整体功能上不如Java强大,但相比PHP而言Java算是较重量级的,所以在小中型系统的开发上,使用PHP的趋势不可挡,...

    猿人谷
  • Golang Leetcode 709. To Lower Case.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/arti...

    anakinsun
  • LeetCode 686. 重复叠加字符串匹配

    给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。

    Michael阿明
  • Leetcode 17 Letter Combinations of a Phone Number

    Given a digit string, return all possible letter combinations that the number c...

    triplebee
  • 网游内存数据库的设计(2)

    续第一篇,前两天对核心存储做了些修改,以前只打算与关系数据库的行与表做对应,value类型只能使array或list, 现在把7种基本类型也加入到value支持...

    李海彬

扫码关注云+社区

领取腾讯云代金券