![8f14aa966025afa726c8d62ba2f54afb.png](https://img-blog.csdnimg.cn/img_convert/8f14aa966025afa726c8d62ba2f54afb.png)
读写string对象
//注意:想要编译下面的代码还需要适当的#include语句和using声明
int main()
{
string s; //空字符窜
cin >> s; //将string对象读入s,遇到空白停止
cout << s << endl; //输出s
return 0;
}
如上所述,如果程序的输入时“ Hello world ”开头和结尾是空格,则输出将是“Hello”,输出结果中没有任何空格。
string s1, s2;
cin >> s1 >>s2;
cout << s1 << s2 << endl; //输出两个string对象
同样的输入,输出将是“Helloworld”
读取未知数量的string对象
int main()
{
string world;
while (cin >> world) //反复读取,直至到达文件末尾
sout << word << endl; //逐个输出单词每个单词后面紧跟一个换行
return 0;
}
使用getline读取一整行
有时候希望能在最终得到的字符串中保留输入时的空白符,这时应该用getline函数代替原来的>>运算符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读取内容,知道遇到换行为止(注意换行符也被读进来了),然后把所读的内容存入到那个string对象中去(注意不存换行符)。getline只要一遇到换行符就结束读取操作并返回结果,哪怕输入的一开始就是换行符也是如此,那么所得的结果就是个空string。
下面是一次输出一整行的程序:
int main()
{
string line;
//每次读入一整行,直至到达文件末尾
while (getline(cin,line))
cout << line << endl;
return 0;
}