前言

最近在写Ptask,顺便了解了如何进行文件读入输出。而在Ptask中最重要,也是最最容易出bug的地方就是文件操作。那么如何进行文件输入输出,在程序中起到重要作用呢?

输入

首先为了保证可以在控制台和文件中都可以进行输入输出,我们不用freopen(据说开启文件读入后就切换不回来了)然后就只能用头文件<fstream>中的ifstreamofstream了。

首先我们需要利用ifstream 名字去开启一个输入的文件流。比如

ifstream in;
in.open("in.txt");
in >> a;

在这个实例中我们用in打开了in.txt这个文档,目前是只读文档,然后在里面读了一个a。

整数的话没有尝试,但是字符串一般是读一行。

为什么是只读文档呢?

因为我们只开启了一个读入的文件流,经尝试过后我发现,无法同时开启读入和输出两个流。否则会乱码。(不一定正确,如有错误请纠正)

然后读完过后就用in.close()操作关掉这个输入流。

输出

输出和输入道理类似,只是用ofstream罢了。

实例

那么我们来直接看看一个实例,以下是Ptask的部分源码(内容有所改变)。

void end()
{
	ofstream out;
	out.open(txtname);
	n = 0;
	for(int i = 1; i <= 100; i++)
	{
		if(strlen(name[i]) == 0)
			continue;
		if(del[i] == 1)
			continue;
		n++;
	}
	out<<n<<endl;
	out<<themer<<endl;
	out.close();
}

我们看到,open中文件名是可以用字符串代替的,而且为了方便读入,我在每一项信息过后都换行符。

Ptask的功能当中,一个比较难实现的就是删除操作的实时显示,本来是可以利用大量代码实现的,但是利用文件操作也可以实现。

我们只需要对删除的内容做好标记,然后将未删除内容导出,最后重新导入显示,相当于重新加载了文档。但也是由于删除操作的实现原理原因,我们无法不保存某一个删除操作。

由于代码已经写好了,如果要改那么这个工程量可是难以想象的,毕竟后面的工能都有依赖于文件操作。我一个人改,哎,弄不来。

在最后的最后如果你认为这里的内容对你有所帮助,那么在右下角点个关注或者点个推荐或者把这篇文章分享出去,然后,没了。

文件输入输出实例&Ptask的编写的更多相关文章

  1. Java学习-015-CSV 文件写入实例源代码

    在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试.常用的文件文件类型无非 txt.csv.xls.properties.xml 这五种文件 ...

  2. Java学习-019-Properties 文件读取实例源代码

    在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...

  3. Java学习-018-EXCEL 文件写入实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  4. Java学习-017-EXCEL 文件读取实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  5. Java学习-016-CSV 文件读取实例源代码

    上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...

  6. Java学习-014-文本文件写入实例源代码(两种写入方式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...

  7. Java学习-013-文本文件读取实例源代码(两种数据返回格式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...

  8. oracle数据库表空间文件收缩实例

    Oracle数据文件收缩实例 数据文件的作用 HWM的基本概念 查看数据文件的使用情况 包括内容:数据文件大小,已经used空间,free空间,hwm信息 select /*+ ordered use ...

  9. php读取excel文件的实例代码

    php读取excel文件的实例代码. 代码: <?php /** * php读取excel文件 * by www.jbxue.com */ $this->loadexcel();//半酣p ...

随机推荐

  1. BEM命名及其在sass中的实践

    Why use it 近几年web应用的发展可以用疯狂来形容,依靠浏览器的支持以及前端技术和框架的发展,很多应用已经把大量的逻辑从服务器端迁移到了浏览器端,使用前后端分离技术,浏览器端与用户进行交互来 ...

  2. 续python学习(一)

    接上面没写完的知识点继写. 当然,这些知识点都很简单,可能没必要花费太多时间去记忆,多写写代码就会了. 5.字符串的使用.索引和切片是字符串主要的两个应用.索引:顾名思义就是找出某个字符在一个字符串中 ...

  3. 带着问题,再读ijkplayer源码

    问题 主流程上的区别 缓冲区的设计 内存管理的逻辑 音视频播放方式 音视频同步 seek的问题:缓冲区flush.播放时间显示.k帧间距大时定位不准问题- stop时怎么释放资源,是否切换到副线程? ...

  4. 多图文,详细介绍mysql各个集群方案

    目录 多图文,详细介绍mysql各个集群方案 一,mysql原厂出品 二,mysql第三方优化 三,依托硬件配合 四,其它 多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移 ...

  5. echarts 图点击事件

    有三种方式,介绍一下,大家学习哈 1.利用tooltip记录信息,使用zr 监听事件,进行事件处理. 这种方法是利用showTip方法或者tooltip的formatter函数记录选中的数据信息,并在 ...

  6. new Date在IOS下面的兼容问题

    此问题坑爹啊,着实坑爹,要不是本宝宝鬼机灵再次进行了测试,不然测试都测不出来的问题,问题源头,有两个时间: let start =  "2018-08-08 00:00:00" ; ...

  7. java后台生成并下载二维码

    这个功能在项目开发中是很基础的,平时用到的也很多,这里简单记录一下,以便以后使用的时候参考 前提业务要求:前台页面展示数据,有下载按钮,点击下载,下载对应数据的二维码. 首先,在pom.xml文件中添 ...

  8. ARC中__bridge, __bridge__transfer, __bridge_retained 关系

    总结于 IOS Tuturial 中 ARC两章,详细在dropbox pdf 文档. Toll-Free Bridging 当你在 Objective-C 和 Core Foundation 对象之 ...

  9. Java 并发系列之一

    Java 并发系列之一 简单的总结了一些 Java 常用的集合之后,发现许多集合都针对多线程提供了支持,比如 ConcurrentHashMap 使用分段锁来提高多线程环境下的性能表现与安全表现.所以 ...

  10. 爬虫使用中间代理人 fiddl...,charles,mitmproxy 设置

    一般的设置在网上就能找到(端口,ip啥的) 但是难点是关于安卓手机证书 在网上找到的几种方法,一种是在app源码中添加设置让手机app同意你下载安装的证书,另一种则是root_adb 安装证书 但是太 ...