代码改变世界

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

2012-08-10 19:16  残月星辰  阅读(1569)  评论(0编辑  收藏  举报

 

   1. string类型的输入操作符对空白字符的处理:读取并忽略有效字符(非空白字符)之前所有的空白字符,然后读取字符直到再次遇到空白字符,读取终止(该空白字符仍留在输入流中)。

测试string 代码:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 using std::string;
 5 int main()
 6 {
 7 
 8    string line;
 9    while(cin>>line)
10    cout<<line<<endl;
11     return 0;
12 
13 }

 

输出后:

 

 2.getline 函数对空白字符处理:不忽略行开头的空白字符,读取字符直至遇到换行符,读取终止并丢弃换行符(换行符从输入流中去掉但并不存储在string对象中)。

getline 测试代码:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 using std::string;
 5 int main()
 6 {
 7 
 8    string word;
 9    while(getline(cin,word))
10           cout<<word<<endl;
11     return 0;
12 
13 }

测试结果: