C++读取有分隔符的TXT文件

阅读: 评论:0

C++读取有分隔符的TXT文件

C++读取有分隔符的TXT文件

TXT文件中的数据以分隔符(像, |等符号)分隔时的读取方法如下:

以,为分隔符为例:TXT示例文件如下:

 关键技术:

1:头文件:加上fstream和string

#include<fstream>
#include<string>

2:文件头的跳过:简单方法为用for循环getline一行行把文件头读完。还有复杂的方法可以去查找学习使用。

for (int i = 0; i < 2 ; i++)//例子中文件头有两行{getline(file, aline);}

3:find函数:在字符串中寻找,需要两个参数,第一个为要找的字符,第二个为寻找的起始点。返回值为要找的字符的位置

		pos = aline.find(",", start);

4:substr函数:截取字符串,输入两个参数:从指定位置截取指定长度,返回值为string字符串。

		str = aline.substr(start, pos - start);

5:string转换为char类型:str.c_str()

6:atoi函数:把字符串类型转换成整型;atof函数:将字符串转换成浮点型数。


代码:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{ifstream file;string aline,str;int num1[2], num2[2];double num3[2], num4[2];file.open("例子.txt");//打开文件//读取文件头for (int i = 0; i < 2; i++){getline(file, aline);}//举例:以,为分隔符for (int i = 0; i < 2; i++){getline(file, aline);//读取第一个数据int pos,start=0;pos = aline.find(",", start);str = aline.substr(start, pos - start);num1[i] = atoi(str.c_str());//读取第二个数据start = pos + 1;pos = aline.find(",", start);str = aline.substr(start, pos - start);num2[i] = atoi(str.c_str());//读取第三个数据start = pos + 1;pos = aline.find(",", start);str = aline.substr(start, pos - start);num3[i] = atof(str.c_str());//读取第四个数据start = pos + 1;pos = aline.find(",", start);str = aline.substr(start, pos - start);num4[i] = atof(str.c_str());}return 0;
}

本文发布于:2024-01-31 09:40:13,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170666521627594.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   分隔符   TXT
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23