如何输入不定项数据

如何输入不定项数据

在本文章中,你将会学到如何输入数量不确定的一行数(或字符串)并将它们逐个存下来。

前置芝士

  1. 会 STL 中的 string 的基本使用;
  2. 会打头文件

目录

  • Part 1:通常不定项输入的方法
  • Part 2:简单介绍 stringstream
  • Part 3:如何将 stringstream 用于不定项的输入

Part 1:通常不定项输入的方法

可以运用 cstdio 库中的 getchar 函数,每次读取一个字符,并配合字符串输入不定项。

比如说,输入一个不定项数组可以这样做:

 
 
 
x
 
 
 
 
vector<int> v;
inline void GetNum(){
  int num=0;
  char ch;
  ch=getchar();
  while(ch!='\n'&&ch!='\r'){
    if(ch==' '){
      v.push_back(num);
      num=0;
    } else {
      num=num*10+(int)(ch-'0');
    }
    ch=getchar();
  }
  if(num) v.push_back(num);
  return ;
}
 

然后就可以把这个 vector 输出了。

Part 2:简单介绍 stringstream

stringstreamC++STL 中的字符串流,头文件是 sstream (更多见这里)。

毕竟是简单介绍,这一部分就没啦

Part 3:如何将 stringstream 用于不定项的输入

看看代码应该就知道了:

 
 
 
xxxxxxxxxx
 
 
 
 
inline void GetNumNo114514(){
    string s;
    int x;
    getline(cin,s);
    stringstream ss(s);//定义了一个叫做ss的字符串流,并赋值为s
    while(ss>>x){//每次读入一个int整数
        v.push_back(x);//然后加入vector
    }
}//希望没出锅,有问题私信我,thanks
 

这样可以简洁明了地输入一行数,和上面的代码功能一样,但是简洁了 1919810 倍。

总结

呜呜呜大家不要唾弃 STL 啊她可是 C++ 标准库啊

这个方法还是比较好用的,希望大家能理解,也能在离开前留下一个赞,谢谢!

posted @ 2022-04-08 21:24  xiaomuyun  阅读(267)  评论(0编辑  收藏  举报