知识点5 C++保存txt文件
简单示例
#include <windows.h>
#include <fstream>
#include <iostream>
#include <string>
using namespace std; int main()
{
ifstream myfile("in.txt");
ofstream outfile("out.txt", ios::app); //ios::app指追加写入
string temp; while (getline(myfile, temp)) //按行读取字符串
{
outfile << temp<<endl;//写文件 }
myfile.close();
outfile.close();
while (1);
return 0;
}
实际应用
一个det.txt存的都是目标检测的信息
1TXT数据存放数据格式
1,-1,281.931,187.466,79.93,209.537,0.997784,-1,-1,-1
1,-1,56.6878,144.225,93.5572,295.907,0.997601,-1,-1,-1
1,-1,378.618,188.922,166.431,234.127,0.995973,-1,-1,-1
1,-1,203.983,207.153,45.553,133.834,0.985409,-1,-1,-1
(抽取单个目标展示)
帧号 目标ID x y w h 准确度
1,-1,291.557,192.468,39.494,119.227,0.995128,-1,-1,-1

(虽然看起来很乱,而且没有换行,但是程序按照行读取还是能分开??? )

程序功能:
1 读取原txt
2 存到另一个txt里面
3 解析其中的数据
这里的解析没有用到字符串分割等,而是利用了 istringstream对象直接将不同类型的数据导给不同的变量。
istringstream对象解析的简单示例
#include <iostream>
#include <sstream> using namespace std; int main()
{
istringstream istr;
istr.str("1 56.7");
//上述两个过程可以简单写成 istringstream istr("1 56.7");
cout << istr.str() << endl;
int a;
float b;
istr >> a;
cout << a << endl;
istr >> b;
cout << b << endl;
return 0;
}
上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入"赋值"操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,利用分界获取的方法我们事实上完成了字符串到整型对象与浮点型对象的拆分转换过程。
工程代码:
#include <windows.h>
#include <fstream>
#include <iostream>
#include <string> #include "opencv2/video/tracking.hpp"
#include "opencv2/highgui/highgui.hpp" using namespace std;
using namespace cv; typedef struct TrackingBox
{
int frame;
int id;
Rect_<float> box;
}TrackingBox; /*
1TXT数据存放数据格式
1,-1,281.931,187.466,79.93,209.537,0.997784,-1,-1,-1
1,-1,56.6878,144.225,93.5572,295.907,0.997601,-1,-1,-1
1,-1,378.618,188.922,166.431,234.127,0.995973,-1,-1,-1
1,-1,203.983,207.153,45.553,133.834,0.985409,-1,-1,-1
(抽取单个目标展示)
帧号 目标ID x y w h 准确度
1,-1,291.557,192.468,39.494,119.227,0.995128,-1,-1,-1 */
void TXTtoBOX() {
string inFileName = "det.txt";
string outFileName = "out.txt"; ifstream myfile(inFileName);
ofstream outfile(outFileName, ios::app); //ios::app指追加写入 if (!myfile.is_open())
{
cerr << "Error: can not find file " << inFileName << endl;
return;
}
if (!outfile.is_open())
{
cerr << "Error: can not find file " << outFileName << endl;
return;
} string detLine;//存放读取出的单个目标信息
istringstream ss;
vector<TrackingBox> detData;
char ch;//存放逗号,没有实际用处,去除数据间的逗号
float tpx, tpy, tpw, tph; while (getline(myfile, detLine)) //按行读取字符串
{
TrackingBox tb;
ss.str(detLine);
ss >> tb.frame >> ch >> tb.id >> ch;// ch用来存放逗号
ss >> tpx >> ch >> tpy >> ch >> tpw >> ch >> tph;
ss.str("");//清空后面不管 tb.box = Rect_<float>(Point_<float>(tpx, tpy), Point_<float>(tpx + tpw, tpy + tph));
detData.push_back(tb); outfile << detLine << endl;//写文件
cout <<"detLine:"<< detLine << endl;
cout << "x:"<<tpx << " y:"<< tpy << " w:" << tpw << " h:" << tph <<endl; }
myfile.close();
outfile.close();
while (1); }
int main()
{
TXTtoBOX(); return 0;
}
运行之后
重新按行存放输出到out.txt

解析

知识点5 C++保存txt文件的更多相关文章
- ASP.NET 保存txt文件
public void ProcessRequest(HttpContext context) { context.Response.Clear(); context.Response.Buffer ...
- 解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)
不知道为什么保存文件后之前打开一直都OK,就突然打开看到变成乱码了,最后解决了 关键:outStream.write(finalContent.getBytes("gbk")); ...
- matlab保存txt文件
save roadsurfacepointcloud.xyz -ascii roaddata2 %保存路面点云文件 roaddata2是变量.
- MATLAB的SAVE命令动态批量保存TXT文件
1.使用save(): for i=1:6 str=[num2str(i),’.txt’]; m=[1 2; 3 4]; save(str,’m’,’-ascii’);%注意m的单引号,一定记得加上, ...
- 文章要保存为TXT文件,其中的图片要怎么办?Python帮你解决
前言 用 python 爬取你喜欢的 CSDN 的原创文章,保存为TXT文件,不仅查看不方便,而且还无法保存文章中的代码和图片. 今天教你制作成 PDF 慢慢看.万一作者的突然把号给删了,也会保存备份 ...
- Ajax B/S 聊天工具txt文件保存
打算做一个两个或多个网页之间交流的功能,思路是多个页面聊天的内容存放到一个文件里,每个页面都有提交聊天功能,当提交聊天信息时保存到上面那个文件里, 在每个也页面里放一个定时器,每秒钟获取聊天文件里的记 ...
- (qsf文件 、 tcl文件 和 csv(txt)文件的区别) FPGA管脚分配文件保存、导入导出方法
FPGA管脚分配文件保存方法 使用别人的工程时,有时找不到他的管脚文件,但可以把他已经绑定好的管脚保存下来,输出到文件里. 方法一: 查看引脚绑定情况,quartus -> assignment ...
- 如何实现用将富文本编辑器内容保存为txt文件并展示
1.实现思路 创建一个xx.txt文件,存放于项目路径下 用文件流去读取文件内容并将读取的内容存放到页面的富文本编辑器框内 富文本编辑框内容改变后,保存时用文件流的方式保存到xx.txt文件中 提示: ...
- 图像特征的提取(gaussian,gabor,frangi,hessian,Morphology...)及将图片保存为txt文件
# -*- coding: utf-8 -*- #2018-2-19 14:30:30#Author:Fourmi_gsj import cv2 import numpy as np import p ...
随机推荐
- LengthFieldBasedFrameDecoder 参数说明
LengthFieldBasedFrameDecoder 参数说明 举例 数据包格式为 body长度(4个)+14个字节的版本说明(字符串)+body 那么LengthFieldBasedFrameD ...
- [数据分析]利用pandasticsearch批量读取ES
1.git地址 https://github.com/onesuper/pandasticsearch 2.建立连接 from pandasticsearch import DataFrame use ...
- Redux + React-router 的入门和配置教程
(转载)原文链接: https://juejin.im/post/5dcaaa276fb9a04a965e2c9b#heading-18 前言
- SQLServer --------- 设置主键自增长
设置主键自增长的两种方式 1.通过图形化的的操作方法进行设置 新建的时候进行设置 第二种是右击设计对已经建好的表进行设置 设置主键 设置自增长 标识增量标识每次自增加多少 标识种子标识从多少开始自 ...
- 自定义httpservletrequest解析参数
3.添加参数解析器 4.注册
- linux 开机mount nfs
mount -t nfs 10.208.1.235:/home/gis/bigrasterdata/mxds/uploads /usr/local/website/upload/pythonmxds ...
- Springboot2+SpringSecurity+Oauth2+Mysql数据库实现持久化客户端数据
目录 介绍 建表,初始化数据 工程配置 Authorization Server - Spring Security配置 Authorization Server - 授权服务器 Resource S ...
- Storm 系列(九)—— Storm 集成 Kafka
一.整合说明 Storm 官方对 Kafka 的整合分为两个版本,官方说明文档分别如下: Storm Kafka Integration : 主要是针对 0.8.x 版本的 Kafka 提供整合支持: ...
- Python - Win10系统下Python3.x环境配置
Win10系统下Python3.x环境配置 https://blog.csdn.net/qq_41952474/article/details/82630551
- Python学习笔记之测试函数
11-1 城市和国家:编写一个函数,它接受两个形参:一个城市名和一个国家名.这个函数返回一个格式为City, Country 的字符串,如Santiago, Chile.将这个函数存储在一个名为cit ...