如何输入不定项数据
如何输入不定项数据
在本文章中,你将会学到如何输入数量不确定的一行数(或字符串)并将它们逐个存下来。
前置芝士
- 会 STL 中的 string 的基本使用;
会打头文件。
目录
- 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
stringstream
是 C++
的 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++
标准库啊
这个方法还是比较好用的,希望大家能理解,也能在离开前留下一个赞,谢谢!