C++读取文本文件中以TAB作为分隔符,且中间字段有为空的情况的方法?
数据文件:testData.txt
内容:
111 222 444 555
思路:
getline()将testData.txt中的第一行记录读入到一个string中,然后搜索第n个分隔符进行定位,判断第n个字段长度,使用substr,截取该字段,并赋值给目标string。
程序:
#include <iostream>
#include <fstream>
using namespace std;
void GetStringFromCSV(std::string line, int nIdx, std::string &str)
{int nSPos = 0; //记录开始位置for(int i = 0; i < nIdx - 1; ++i){nSPos = line.find('\t', nSPos); //从nSPos开始寻找下一个TAB++nSPos; //从当前查找的'\t'键位置下一个字符,开始查找}int nEPos = line.find('\t', nSPos); //查找第三个字段的结束位置if(nEPos != string::npos) //找到TAB字符的{str = line.substr(nSPos, nEPos - nSPos);}else{str = line.substr(nSPos, line.size() - 1 - nSPos);}
}
int main(void)
{string sTarget, line;ifstream in("./testData.txt");if(!in.is_open()){cout << "open ./testData.txt fail!" << endl;return -1; } getline(in, line);GetStringFromCSV(line, 3, sTarget);cout << "./testData.txt 第一行记录中以tab键分隔的第三个字段的内容为:" << sTarget << endl; in.close();return 0;
}
ps:只需修改一下'\t',就可以适用用其他分隔符分隔的文件。
C++读取文本文件中以TAB作为分隔符,且中间字段有为空的情况的方法?相关推荐
- IDL读取文本文件中多维数组的方法
今天给大家介绍下怎么用IDL语言读写多维数组.以下面这个三维数组为例 3585 1368 114 56 52 29 25 14 3586 1 ...
- java 静态资源变量_Java中读取配置文件中的内容,并将其赋值给静态变量的方法...
项目开发中某个功能需要抽取成方法写成一个工具类,提供给别人使用.写过工具类的人都知道,工具类中的方法一般都是静态方法,可以直接使用类名点方法名调用, 使用很方便,比如判断某个对象是否为空的方式Obje ...
- mysql 查询相同字段的数据_MySql 几种查询相同字段中相同数据,及删除相同字段的相同数据的方法...
比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select p1.* from persons p1,persons ...
- [MATLAB学习笔记]textread读取文本文件中的数据;写入多个输出
语法 [A,B,C,...] = textread(filename,format) [A,B,C,...] = textread(filename,format,N) [...] = textrea ...
- python读单行文本求平均值_Python读取文本文件中的数字来计算平均值
我有一个有很多数字的文件,我想用python把它读入一个列表列表中.然后计算它的平均值或总和或其他什么.在 这是我的文本文件:1,2,5349,2398,19,3450 10,95,201,5943, ...
- 解决FileReader读取文本文件中字乱码问题
String pathname = "web/static/outPutFile.txt"; FileReader reader = new FileReader(pathname ...
- python读取url中存储的数据_Python实现从URL地址提取文件名的方法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 关于idea中的actiBMP插件不能下载或者使用的所有情况解决方法说明(对号入座)
一.问题情景(对号入座) 1.你的idea的插件商店里面搜索 actiBMP 插件显示没有搜索结果, 如图所示: 如果是这种情况的话,一般需要去这个idea官网下载插件的网址搜索actiBMP就可以了 ...
- MATLAB读取文本文件----textread
textread 读取文本文件中的数据:写入多个输出 注意 不推荐使用 textread.请改用 textscan. 语法 [A,B,C,...] = textread(filename,format ...
最新文章
- linux虚拟机处理器设置,虚拟机linux cpu核数
- 动态库的编写和调用 - Delphi
- 如何修改cmd控制台默认编码为utf-8
- 论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
- SharePoint学习札记[6] — WebPart之基础
- jeecg 分布式部署附件共享问题(linux下配置共享磁盘nfs服务)
- 构造activeMQ
- ice(Internet Communications Engine) window 安装与配置
- 深入浅出mfc之6大技术 运行时类型识别 DCLARE_DYNCREATE、DECLARE_DYNAMIC 、DECLARE_SERIAL、RUNTIME_CLASS、DECLARE_SERIAL 等
- IIS 配置 PHP 环境搭建:web 文件管理器
- 深度学习框架PyTorch:入门与实践 学习(二)
- .NET IO 复习中的误区
- 设计模式之适配器模式
- 太阳系八大行星直径、质量、与太阳距离参数
- java fop_java – 未找到类FOP
- java将小写金额转为大写金额
- 【修色圣典】第一章 色彩、对比度和通道
- MAC:更新失败无法进系统的解决方案
- 华为服务器维护客服,服务器客服
- 软件Bug五种等级,一级最致命
热门文章
- python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
- et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...
- SDH光端机概述与技术应用详解
- 武警多业务光端机,五防光端机产品介绍
- java hessian rmi_RMI,socket,rpc,hessian,http比较
- python读取excel写入mysql pandas_python pandas 读取文件 写入文件excel
- matlab中rb代表什么意思,你知道“川藏线上”女游客举着“求RB”的牌子是啥意思吗?暗语啊!...
- layui登录页面写入数据_layui基本使用(动态获取数据,并把需要的数据传到新打开的窗口)...
- sqlyog设置自动补全_Visual Studio Code 最好的功能、插件和设置
- 计算机图形学结课论文,计算机图形学结课论文精要.doc