c++之getline(istream && is,string&str,char delim)用法及注意事项

来源:互联网 发布:女网络歌手有哪些人 编辑:程序博客网 时间:2024/06/05 18:09

最近使用到了getline(istream && is,string&str,char delim), 这个函数的作用将输入流的字符串按照分割符delim为界分割出来。

c++网站上的介绍是:

从流获取线到字符串:
1.从提取的字符是并将其存储到STR直到划界字符DELIM被发现(getline (istream&& is, string& str)默认分割符是“\ n”, )。
2.如果到达文件末尾,或者在输入操作过程中出现其他错误,则提取也会停止。
3.如果找到分隔符,则将其提取并丢弃(即不存储,下一个输入操作将在其后开始)。
4.请注意,调用之前的str中的任何内容都被新提取的序列替换。
5.每个提取的字符都附加到该字符串,和使用push_back()的效果一样。


下面是一段实例:

#include <stdio.h>#include <iostream>#include <vector>#include <sstream>using namespace std;int main(){    vector<string> ret;    string tmp;    string s = "0av0cqw0dd0d0";    stringstream ss(s);    while(getline(ss, tmp, '0'))    {        ret.push_back(tmp);    }    for(int i = 0; i < ret.size(); i++)        printf("第%d部分:%s\n", i + 1               , ret[i].c_str());    return 0;}
输出结果:

看到结果相信大家都发现了第一部分的空串,实际上这个函数是将delim之前的字符全部输出,因此如果首字符就是delim或者有连续delim,我们就必须注意将空字符串剔除。即在ret.push_back(tmp)前加入控制语句if(tmp != "")。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 猫爬架 爬架图片 爬架施工方案 自制猫爬架 建筑爬架网片 建筑爬架 爬架公司 爬架防护网片 爬架网厂家 建筑爬架公司 江苏爬架生产厂家 爬楼梯能减哪里 小白爬楼梯 爬梯 双生子爬梯实验 爬梯图集 爬梯图片 建筑安全爬梯 不锈钢爬梯 建筑爬梯 烟囱安装爬梯护网 伸缩爬梯 爬梯搅拌机 上下爬梯 高墩安全爬梯 爬梯软件 爬梯机 大爬梯 折叠爬梯 塑钢爬梯 液压折叠爬梯 爬梯购物车 施工安全爬梯 爬梯安全 安全爬梯厂家 铝合金爬梯 爬梯什么意思 爬梯做法 安全爬梯 钢爬梯图片 塑钢爬梯多少钱