简单示例

#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文件的更多相关文章

  1. ASP.NET 保存txt文件

    public void ProcessRequest(HttpContext context) { context.Response.Clear(); context.Response.Buffer ...

  2. 解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)

    不知道为什么保存文件后之前打开一直都OK,就突然打开看到变成乱码了,最后解决了 关键:outStream.write(finalContent.getBytes("gbk")); ...

  3. matlab保存txt文件

    save roadsurfacepointcloud.xyz -ascii roaddata2 %保存路面点云文件 roaddata2是变量.

  4. MATLAB的SAVE命令动态批量保存TXT文件

    1.使用save(): for i=1:6 str=[num2str(i),’.txt’]; m=[1 2; 3 4]; save(str,’m’,’-ascii’);%注意m的单引号,一定记得加上, ...

  5. 文章要保存为TXT文件,其中的图片要怎么办?Python帮你解决

    前言 用 python 爬取你喜欢的 CSDN 的原创文章,保存为TXT文件,不仅查看不方便,而且还无法保存文章中的代码和图片. 今天教你制作成 PDF 慢慢看.万一作者的突然把号给删了,也会保存备份 ...

  6. Ajax B/S 聊天工具txt文件保存

    打算做一个两个或多个网页之间交流的功能,思路是多个页面聊天的内容存放到一个文件里,每个页面都有提交聊天功能,当提交聊天信息时保存到上面那个文件里, 在每个也页面里放一个定时器,每秒钟获取聊天文件里的记 ...

  7. (qsf文件 、 tcl文件 和 csv(txt)文件的区别) FPGA管脚分配文件保存、导入导出方法

    FPGA管脚分配文件保存方法 使用别人的工程时,有时找不到他的管脚文件,但可以把他已经绑定好的管脚保存下来,输出到文件里. 方法一: 查看引脚绑定情况,quartus -> assignment ...

  8. 如何实现用将富文本编辑器内容保存为txt文件并展示

    1.实现思路 创建一个xx.txt文件,存放于项目路径下 用文件流去读取文件内容并将读取的内容存放到页面的富文本编辑器框内 富文本编辑框内容改变后,保存时用文件流的方式保存到xx.txt文件中 提示: ...

  9. 图像特征的提取(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 ...

随机推荐

  1. Sql server锁

    SQL Server锁粒度 1.锁粒度是被封锁目标的大小,封锁粒度小则并发性高,但开销大,封锁粒度大则并发性低但开销小 2.SQL Server支持的锁粒度可以分为为行.页.键.键范围.索引.表或数据 ...

  2. 动手学深度学习9-多层感知机pytorch

    多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetro ...

  3. Python【每日一问】36

    问: 基础题: 809*x=800*x+9*x+1 其中 x 代表的两位数, 8*x 的结果为两位数, 9*x 的结果为 3 位数.求 x ,及计算 809*x 的结果. 提高题: 对文件" ...

  4. Spring Boot 自定义 Shiro 过滤器,无法使用 @Autowired 解决方法

    在 Spring Boot 中集成 Shiro,并使用 JWT 进行接口认证. 为了统一对 Token 进行过滤,所以自定义了一个 JwtTokenFilter 过滤器. 期间遇到了以下几个问题,这里 ...

  5. IScroll自动计算高度代码

    setScrollHeight: function () { var temp_height = 0; temp_height = $("#" + this.wrapperId). ...

  6. 关于 AutoResetEvent 的介绍的简单示例

    关于 AutoResetEvent 的介绍的简单示例 直接贴代码了: class Program { static void Main(string[] args) { string result = ...

  7. Problem 1059 老师的苦恼

    Bob写文章时喜欢将英文字母的大小写混用,例如Computer Science经常被他写成coMpUtEr scIeNce,这让他的英文老师十分苦恼,现在请你帮Bob的英文老师写一个程序能够将Bob的 ...

  8. Java中转换为十六进制的几种实现

    public class HexUtil { private static final String[] DIGITS_UPPER = {"0", "1", & ...

  9. 如何在git中上传图片

    首先在git仓库上创建一个文件夹,之后点击 Upload files 上传本地的图片 上传完之后复制存放图片的git网址 之后在新建一个.md的子文件 新建完成之后在该md文件中写入如下代码: ![任 ...

  10. mvc返回json数据

    不知道是不是你要的那种,这是用于返回简单数据表达数据操作成功,中间复杂代码掠过看首尾 [HttpPost] public IActionResult DataRole(int id, string[] ...