C++实现分割读取txt文件以及对齐打印设置
假设现在有txt文件如下,需要将里面每一项的内容分别读取并存储,以读取文件中的FrameNo、Y_bits以及Y_psnr三个变量为例进行分析。
txt文件下载:点击下载txt文件
完整C++程序如下:
txt_read.cpp
#include<iostream>
#include<iomanip>
using namespace std;void errorMsg(const char *msg) {printf("error:%s\n", msg);
#ifdef _WIN32system("pause");
#endifexit(-1);
}void read_one_frame_info(int frameNo, int *y_bits, double *y_psnr, char *fileName) {int frameno = 0, qp = 0, uv_bits = 0;char temp[50];char errorText[50];FILE *fp;fp = fopen(fileName, "r"); if (fp == NULL) {sprintf(errorText, "File %s not found", fileName);errorMsg(errorText);}while (!feof(fp)){fscanf(fp, "%s", temp);if (strcmp(temp, "FrameNo:") == 0){fscanf(fp, "%s", temp); // get frame numberframeno = atoi(temp);if (frameno == frameNo){break;}}}if (feof(fp)){sprintf(errorText, "In function read_one_frame_info: frame number %d not found", frameNo);errorMsg(errorText);}fscanf(fp, "%s", temp);fscanf(fp, "%s", temp); // get Y_bits*y_bits = atoi(temp);fscanf(fp, "%s", temp);fscanf(fp, "%s", temp); // get UV_bitsfscanf(fp, "%s", temp);fscanf(fp, "%s", temp); // get QPfscanf(fp, "%s", temp);fscanf(fp, "%s", temp); // get Y_psnr*y_psnr = (float)atof(temp);fclose(fp);
}void main()
{int frameNum = 100;int *y_bit;double *y_psnr;y_bit = (int *)malloc(sizeof(int)*frameNum);y_psnr = (double *)malloc(sizeof(double)*frameNum);char *fileName = "per_frame_stat.txt";for (int i = 0; i < frameNum; i++) {read_one_frame_info(i, &y_bit[i], &y_psnr[i], fileName);//普通输出//cout << "FrameNo:" << i << " " <<//"bitRate:" << y_bit[i] << " " << " PSNR:" << y_psnr[i] << endl;//对齐输出cout <<"FrameNo:"<< setw(10) << setfill(' ') << left <<i <<" "<<"bitRate:" << setw(10) << setfill(' ') << left<<y_bit[i] << " " << " PSNR:" <<y_psnr[i] << endl;}
}
注意:
cout设置对齐方式:..........<< setw(10) << setfill(' ') << left..........
对齐与非对齐方式运行结果如下,当然不同的宽度间隔可以灵活调整,也可以指定读取txt文件中的其它内容。
非对齐:
对齐:
C++实现分割读取txt文件以及对齐打印设置相关推荐
- java读取文件是乱码_java读取txt文件乱码解决方案
因为txt默认的选项是ANSI,即GBK编码.GBK和GB2312都是中文编码,在这里解释一下两者的区别. 总体说来,GBK包括所有的汉字,包括简体和繁体.而gb2312则只包括简体汉字. GBK: ...
- java读取txt文件乱码解决方案
因为txt默认的选项是ANSI,即GBK编码.GBK和GB2312都是中文编码,在这里解释一下两者的区别. 总体说来,GBK包括所有的汉字,包括简体和繁体.而gb2312则只包括简体汉字. GBK: ...
- python按行读取txt文件-Python逐行读取txt文本,按符合分割词并逐行写入txt
背景Background: 我的txt文件里面存放的是搜索词,由于原始的query(搜索词)都是用/或者.来分割词,而我要达到的是每个词语是单独的一行,并且写入txt 第一步:按行读取txt文件 s ...
- python读取txt文件如何按数字分隔_python 读txt文件,按‘,’分割每行数据操作
按行读取TXT文件 fname = './新建文件夹/yob2010.txt' //文件夹路径 with open(fname,'r+',encoding='utf-8') as f: for lin ...
- python接口自动化参数化_Python读取txt文件数据的方法(用于接口自动化参数化数据)...
小试牛刀: 1.需要python如何读取文件 2.需要python操作list 3.需要使用split()对字符串进行分割 代码运行截图 : 代码(copy) #encoding=utf-8 #1.r ...
- python读取txt文件写入-Python读写txt文本文件的操作方法全解析
一.文件的打开和创建 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python! hello world! ...
- python读取整个txt文件-python怎么读取txt文件内容
读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...
- python怎么读取txt文件-python怎么读取txt文件内容
读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...
- c++语言读取txt文件,C++中读写txt文件并分离字符的方法
在实际工程中,经常遇到需要读取txt文件,txt文件中存的是一些小数或者整型数据,在C++中,可以利用string类和ifstream库文件对txt进行的读取,不过读回的数据经常是以字符串的形式返回, ...
最新文章
- idea 如何看bytecode_IDEA字节码学习查看神器介绍
- xmpp这一段蛋疼的 坑,
- NHibernate之Could not initialize proxy - no Session Bug
- 多进程客户端-服务器模型
- 如何使用Python创建自己的加密货币
- excel修改列名_听说你还在手动合并Excel,看看这个吧!?
- ASP.NET Core 运行原理剖析
- 【jQuery笔记Part2】01-jQuery显示隐藏切换动画侧边广告案例
- dbf如何导入oracle_克服Oracle导数一切难题
- “物联网”中,少了这项技术,会损失多少,算过吗!
- 异常关闭MyEclipse 8.6后,不能重启
- DragonBones快速入门指南
- HDU 1712 ACboy needs your help(分组背包入门题)
- python2和python3共存时,设置默认python为python3
- java省市区树_Java后台以树形结构返回省市区三级区域信息
- 苹果8a1660是什么版本_苹果a1660是什么版本
- uva 10098	Generating Fast
- 明日方舟泰拉世界解析
- 网络安全笔记-26-Linux-基础
- Windows系统 修改 dns
热门文章
- 服务台与事件管理解决方案
- 778. 水位上升的泳池中游泳
- 从0到1打造推荐系统-架构篇
- java 聚合模式_java 聚合和组合的区别?
- php mysql中华图书购物商城
- python dataframe是否为空_python if条件判断dataframe是否为空
- Python+OpenCV:基于分水岭算法的图像分割(Image Segmentation with Watershed Algorithm)
- 校招真题练习001 牛牛找工作(网易)
- VMWare——window server 2008/2012 administrator 密码忘记,设置重置密码
- 二叉搜索树,和红黑树,