string类型的输入操作符对空白字符的处理:
- 读取并忽略有效字符(非空白字符)之前所有的空白字符(如空格、换行符、制表符);
- 读取字符直至再次遇到空白字符,读取终止(该空白字符仍留在输入流中)。
因此,如果输入到程序的是“ Hello World! ”(注意开头和结尾的空格),则屏幕上将输出“Hello”,而不含任何空格。
下面的程序将从标准输入读取一组string对象,然后在标准输出上逐行输出:
1 int main() 2 { string word; 3 // read until end-of-file,writing each word to new line 4 while(cin>>word) 5 cout<<word<<endl; 6 return 0; 7 }
如输入hello world,
则输出为 :hello
world
getline函数对空白字符的处理:不忽略行开头的空白字符,读取字符直至遇到换行符,读取终止并丢弃换行符(换行符从输入流中去掉但并不存储在string对象中)。
getline这个函数接受两个参数:一个输入流对象和一个string对象。
1 int main() 2 { string line; 3 //read line at time until end-of-file 4 while(getline(cin,line)) 5 cout<<line<<endl; 6 return 0; 7 }