istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
string str, line;
while(getline(cin, line))
{
istringstream stream(line);
while(stream>>str)
cout<<str.c_str()<<endl;
}
return 0;
}
/*input:
abc df e efgeg ffg
ouput:
abc
df
e
efgeg
ffg
*/
C++中有两个getline函数,这两个函数分别定义在不同的头文件中。
1.getline()是定义在<string>中的一个行数,用于输入一行string,以enter结束。
函数原型:getline(cin,str);
cin: istream类的输入流对象
str: 待输入的string对象
example 1:
//istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
//《C++ primary plus》第四章编程练习题1
#include <iostream>
#include <string>
using namespace std;
string fname;
string lname;
char grade;
int age;
int main()
{
cout<<"What is your first name?"<<endl;
getline(cin,fname);
cout<<"What is your last name?"<<endl;
getline(cin,lname);
cout<<"What letter grade do you deserve?"<<endl;
cin>>grade;
cout<<"What is your age?"<<endl;
cin>>age;
cout<<"Name:"<<lname<<","<<fname<<endl<<"Grade:" <<grade<<endl<<"Age:"<<age<<endl;
return 0;
}
cin.getline(char ch[],size)是cin 的一个成员函数,定义在<iostream>中,用于输入行指定size的字符串,以enter结束。若输入长度超出size,则不再接受后续的输入。
example 2:
//《C++ primary plus》第四章编程练习题1
#include <iostream>
using namespace std;
char fname[5];
char lname[5];
char grade;
int age;
int main()
{
cout<<"What is your first name?"<<endl;
cin.getline(fname,5);
cout<<"What is your last name?"<<endl;
cin.getline(lname,5);
cout<<"What letter grade do you deserve?"<<endl;
cin>>grade;
cout<<"What is your age?"<<endl;
cin>>age;
cout<<"Name:"<<lname<<","<<fname<<endl<<"Grade:"<<grade<<endl<<"Age:"<<age<<endl;
return 0;
}