getline函数详解

本文详细解析了C++中的getline()函数,解释了其如何读取整行文本,以及在使用中可能出现的问题。getline()函数的原型为`istream& getline ( istream &is , string &str , char delim )`,默认以回车符为终止符。通过实例展示了当getline()用于while循环判断时,实际判断的是输入流的有效性而非字符串是否为空,因此直接回车无法跳出循环。" 1471779,164606,Java实现同时复制图片和文字到剪贴板,"['Java GUI', '数据交换', '事件处理', '剪贴板操作']
摘要由CSDN通过智能技术生成

学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”。书上给的程序如下:

int main()

{

string line:

while(getline(cin,line))

cout<<line<<endl;

return 0;

}

大家会发现运行时怎么也跳不出循环,甚至会发生各种莫名其妙的错误。这是为什么呢?在这里我给大家做一个详细的讲解。

首先给大家介绍一下getline()函数(个人觉得百度百科给的果断不够详细)

大家百度会发现getline()的原型是istream& getline ( istream &is , string &str , char delim );

其中 istream &is 表示一个输入流,譬如cin;string&str表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为’\n’,也就是回车换行符(遇到回车停止读入)。给大家举个例子:

string line;

cout<<“please cin a line:”

getline(cin,line,’#’);

cout<<endl<<"The line you give is:"line;

那么当我输入"You are the #best!" 的时候,输入流实际上只读入了&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值