ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++读取文件操作

2021-08-06 10:01:23  阅读:203  来源: 互联网

标签:文件 读取 手柄 制动 c++ 换向 102 103 100


目的:定义一个结构体,把文件中的所有状态信息读取出来,然后将其放入一个vector的容器中。
----------------------------------分割线-------------------------------------------
文件格式如下大致;
1 换向手柄 106,-107,-105 换向手柄—前
1 换向手柄 106,107,-105 换向手柄—后
1 换向手柄 -106,-107,105 换向手柄—切

2 制动手柄 -95,96,-97,-98,-99,-100,-101,-102,-103,-104 制动手柄—运行位-X60
2 制动手柄 -95,-96,97,-98,-99,-100,-101,-102,-103,-104 制动手柄—制动1级位-X61
2 制动手柄 -95,-96,-97,98,-99,-100,-101,-102,-103,-104 制动手柄—制动2级位-X62
2 制动手柄 -95,-96,-97,-98,99,-100,-101,-102,-103,-104 制动手柄—制动3级位-X63
2 制动手柄 -95,-96,-97,-98,-99,100,-101,-102,-103,-104 制动手柄—制动4级位-X64
2 制动手柄 -95,-96,-97,-98,-99,-100,101,-102,-103,-104 制动手柄—制动5级位-X65
2 制动手柄 -95,-96,-97,-98,-99,-100,-101,102,-103,-104 制动手柄—制动6级位-X66
----------------------------------分割线-------------------------------------------
为了存取每一个设备的状态信息,必然要一行一行的操作,所以我用到了while(gtline(,));
文件路径用到的是相对路径,一开始用"文件名.txt"文件一致读取不了,但是我自己创建了一个测试程序又能读到,不知什么原因

string Id,Name,Value,Status,s,t;
sdt::ifstream infile;
std::istringstream iss;
infile.open("../date/test.txt",std::ios);
while(getline(infile,s))
{
	iss.str(s);//将s中的数据复制到iss,方便读取字符
	while(iss>>Id>>Name>>Value>>Status)//读取第一行:Id=1 Name=换向手柄 Value=106,-107,-105 Status=换向。。。。
	{
		std::istringstream temp(Value)
		while(getline(temp,t,','))//此时t读到的是Value中每一个数值的值
		{
			if(atoi(t.c_str()<0)
			{continue;}
			else
			{将数据放入结构体}
		}
		将结构体对象放入vector容器
	}
	iss.clear();
}
infilr.clear();

结构体中Value存放的是BYTE的数据类型,负数是没有用的,atoi()将字符转化为数字,c_str()将字符串转为字符,然后判断数值,负数跳过,正数赋值给结构体。注意自己文本中的标点符号是英文还是中文,很多小问题都会造成错误。

标签:文件,读取,手柄,制动,c++,换向,102,103,100
来源: https://blog.csdn.net/qq_44257811/article/details/119444071

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有