数据文件: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作为分隔符,且中间字段有为空的情况的方法?相关推荐

  1. IDL读取文本文件中多维数组的方法

    今天给大家介绍下怎么用IDL语言读写多维数组.以下面这个三维数组为例 3585   1368    114     56     52     29     25     14    3586   1 ...

  2. java 静态资源变量_Java中读取配置文件中的内容,并将其赋值给静态变量的方法...

    项目开发中某个功能需要抽取成方法写成一个工具类,提供给别人使用.写过工具类的人都知道,工具类中的方法一般都是静态方法,可以直接使用类名点方法名调用, 使用很方便,比如判断某个对象是否为空的方式Obje ...

  3. mysql 查询相同字段的数据_MySql 几种查询相同字段中相同数据,及删除相同字段的相同数据的方法...

    比如现在有一人员表  (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select   p1.*   from   persons   p1,persons   ...

  4. [MATLAB学习笔记]textread读取文本文件中的数据;写入多个输出

    语法 [A,B,C,...] = textread(filename,format) [A,B,C,...] = textread(filename,format,N) [...] = textrea ...

  5. python读单行文本求平均值_Python读取文本文件中的数字来计算平均值

    我有一个有很多数字的文件,我想用python把它读入一个列表列表中.然后计算它的平均值或总和或其他什么.在 这是我的文本文件:1,2,5349,2398,19,3450 10,95,201,5943, ...

  6. 解决FileReader读取文本文件中字乱码问题

    String pathname = "web/static/outPutFile.txt"; FileReader reader = new FileReader(pathname ...

  7. python读取url中存储的数据_Python实现从URL地址提取文件名的方法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 关于idea中的actiBMP插件不能下载或者使用的所有情况解决方法说明(对号入座)

    一.问题情景(对号入座) 1.你的idea的插件商店里面搜索 actiBMP 插件显示没有搜索结果, 如图所示: 如果是这种情况的话,一般需要去这个idea官网下载插件的网址搜索actiBMP就可以了 ...

  9. MATLAB读取文本文件----textread

    textread 读取文本文件中的数据:写入多个输出 注意 不推荐使用 textread.请改用 textscan. 语法 [A,B,C,...] = textread(filename,format ...

最新文章

  1. linux虚拟机处理器设置,虚拟机linux cpu核数
  2. 动态库的编写和调用 - Delphi
  3. 如何修改cmd控制台默认编码为utf-8
  4. 论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
  5. SharePoint学习札记[6] — WebPart之基础
  6. jeecg 分布式部署附件共享问题(linux下配置共享磁盘nfs服务)
  7. 构造activeMQ
  8. ice(Internet Communications Engine) window 安装与配置
  9. 深入浅出mfc之6大技术 运行时类型识别 DCLARE_DYNCREATE、DECLARE_DYNAMIC 、DECLARE_SERIAL、RUNTIME_CLASS、DECLARE_SERIAL 等
  10. IIS 配置 PHP 环境搭建:web 文件管理器
  11. 深度学习框架PyTorch:入门与实践 学习(二)
  12. .NET IO 复习中的误区
  13. 设计模式之适配器模式
  14. 太阳系八大行星直径、质量、与太阳距离参数
  15. java fop_java – 未找到类FOP
  16. java将小写金额转为大写金额
  17. 【修色圣典】第一章 色彩、对比度和通道
  18. MAC:更新失败无法进系统的解决方案
  19. 华为服务器维护客服,服务器客服
  20. 软件Bug五种等级,一级最致命

热门文章

  1. python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
  2. et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...
  3. SDH光端机概述与技术应用详解
  4. 武警多业务光端机,五防光端机产品介绍
  5. java hessian rmi_RMI,socket,rpc,hessian,http比较
  6. python读取excel写入mysql pandas_python pandas 读取文件 写入文件excel
  7. matlab中rb代表什么意思,你知道“川藏线上”女游客举着“求RB”的牌子是啥意思吗?暗语啊!...
  8. layui登录页面写入数据_layui基本使用(动态获取数据,并把需要的数据传到新打开的窗口)...
  9. sqlyog设置自动补全_Visual Studio Code 最好的功能、插件和设置
  10. 计算机图形学结课论文,计算机图形学结课论文精要.doc