版权声明:未经允许禁止转载。转载请联系我WX:yuyi5453。并且注明出处 https://blog.csdn.net/weixin_40532377/article/details/86583515
有的时候题目会要求一次性读取一整行数据,或者输入的一行数据的个数并不清楚。
举个栗子:求一行数的和
样例1: 1 2 3 4
样例2:2 8 9 5 4 3 4
就像这种要求,你并不知道题目的输入数据个数是多少,使用字符串输入也是不行的,因为空格是字符串的结束标志,并不能读入一整行。
再举个栗子:统计字符串的长度,空串的长度为0。
比如下面这个,输入回车是不会被当做空串的!
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
while(cin>>s)
cout<<s.length();
}
下面介绍几种常用的函数以及常用的用法
因为用的不多,所以可能说的不齐全。希望多多包涵。而且为平时所用,也不会太复杂,做做笔记会用就好。
1.getline(cin,st)
功能:读取一行数据到字符串st中
例子二如下,这样空串就为0了
#include<bits/stdc++.h>
using namespace std;
int main()
{
string st;
while(getline(cin,st)){
cout<<st.length()<<endl;
}
}
但是例子一呢?我们可以对字符串进行处理将里面的数字存到数组中(插播一条广告,有关字符串的处理常用函数请戳这里)
或者呢,可以使用字符串输入流stringstream,如下。如果不懂原理的话其实记住怎么用就好,原理可以查阅IO流。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string st;
getline(cin,st);
int a[10],n=0,x;
stringstream ss(st);
while(ss>>x) a[n++]=x;
}
这个是用的比较多的,下面还有几个就不具体讲了,简单说一下,有机会再更一下,或者大家可以加我微信yuyi5453
2、cin.get()
ch=cin.get():读取一个字符
cin.get(st,m): 读取m-1长度个字符串到st中(第m个字符为'\0')。
3、cin.getline()和cin.get()一般用法差不多。
嗯,就是这样。