c++ getline()和istringstream

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;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值