20170914_字符串的输入问题
1、cin 输入:遇到空格符就截至,空格后面的字符 接收不到,但是它还在输入缓冲流中。
//字符串的输入问题
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<numeric>
#include<functional>
using namespace std;
int main(void)
{
string str;
/*cin 输入:遇到空格符就截至,空格后面的字符str 接收不到,但是它还在输入缓冲流中。
比如:
abcd
abcd:4
abcd bddd
abcd:4
bddd:4
abcd bddd bccc
abcd:4
bddd:4
bccc:4
*/
while(cin>>str)
{
cout<<str<<":"<<str.size()<<endl;
}
system("pause");
return 0;
}
2、getline 输入:遇到换行符就截止,字符串之间的空格也能接收到。
谨记:如果不加上getchar( ) 语句,则不输入任何字符串,只按下换行键,它也会读进去并输出。
//字符串的输入问题
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<numeric>
#include<functional>
using namespace std;
int main(void)
{
string str;
/*getline 输入:遇到换行符就截止,字符串之间的空格也能接收到。
比如:
abcd
abcd:4
abcd bddd
abcd bddd:9
abcd bddd bccc
abcd bddd bccc:14
*/
while(getline(cin, str))
{
cout<<str<<":"<<str.size()<<endl;
getchar(); //吸收换行符
/*谨记:如果不加上getchar语句,则不输入任何字符串,只按下换行键,它也会读进去并输出:0 */
}
system("pause");
return 0;
}