读取未知数量的字符
一次从键盘读入一个字符
string s1;
while (cin >> s1)//反复读取word, 直到文件末尾
cout << s1 << endl;//每一个单词结束就换行
return 0;
LIKE NIKE HYPE COPO 运行结果:
注意: 反复读取 直到文件末尾. 言外之意, 你可以输入好几次.
(可以反复读取)
一次读入一行.
使用getline代替<<, 一次读取一行, 直到遇到换行符(注意换行符号也读进去了), 然后把读进来的内容放在要输入的string里(注意换行符号没读入).
string s1;
while (getline(cin, s1)) //需要#include<string>
if (!s1.empty())
cout << s1 << endl;
读一次, 输出一次.
关于empty(), size_type;
size_type是无符号整型数, 不可以小于零.
#include<iostream>
using namespace std;
#include<string>
int main()
{
string s1 = "asdfaf";
auto len = s1.size();
cout << len;
if (len < -1)
cout << "fsdfs";
cout << typeid(len).name();
len = -1;
cout << len;
return 0;
}
输出结果为:
-1 转换为最大的数字 18446744073709551615
len的类型为 unsigned int
len和-1的比较把-1当成最大的数字
string ozy = "guangxi";
string s1;//默认初始化
s1 += ozy;
cout << ozy;
string s2;
s2 = "guangxi" + ("tengxian" + ozy);
s2 = "guangxi" + ozy + "tengxian";
s2 = '1' + '2' + '2';
s2 = "guangxi" + ozy;
字符字面值并不是string类型的对象, string对象和字符串字面值彼此相加时, 必须保证每个+两侧运算对象至少有一个是string.