cin读入string对象

Posted walterj726

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cin读入string对象相关的知识,希望对你有一定的参考价值。

cin
1.cin>>
1.以空格,回车,换行分隔
2.如果第一个为上述“分隔符”,cin会自动忽略并清除,等待数据继续输入
3.cin>>noskipws>>input可以不略过空白字符
2.cin.get
A.读取一个字符
a=cin.get();cin.get(a);
不忽略分隔符
B.读取一整行
cin.get(a,size);遇到分隔符是结束
Note:
只能将字符串读入c风格的字符串中,即char*类,而getline类型可以读入c++风格字符串,即string类
3.cin.getline
a=cin.getline(a,size)遇到分隔符结束
实际只能读取size-1个数据
与cin.get()唯一区别为,前者不会将分隔符留在缓冲区中
4.cin.clear()
清空输入数据时的异常状态,使接下来的数据正常输入
5.Cin.ignore()
Cin.ignore(1024,’ ’)第一个参数通常要求为非常大的整数,实际上只有 在起作用,就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。
Note:
如果cin.ignore()不给参数,则默认参数为cin.ignore(1,EOF),即把EOF前的1个字符清掉,没有遇到EOF就清掉一个字符然后结束,会导致不正确的结果
6.getline
getline(cin,a)getline遇到结束符时,会将结束符一并读入指定的string中,再将结束符替换为空字符,所以用getline较为安全
与cin.getline()类似,前者属于istream流,后者属于stirng流

String输入
即用上述的cin和读入即可getline
为了输入的快速,防止超时,可以使用scanf读入数据,后再赋值给string

https://www.cnblogs.com/wyt123/p/10698102.html

以上是关于cin读入string对象的主要内容,如果未能解决你的问题,请参考以下文章

string黑科技

使用 scanf 读入 std::string

getline()函数的使用

string 类型的输入操作符 cin 和 getline 函数分别如何处理空白字符?

[OI - string]有关字符的的处理

C++中数字与字符串之间的转换 scanf string总结(复习必读)