ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件输入输出实例&Ptask的编写

2020-04-06 21:53:43  阅读:201  来源: 互联网

标签:文件 删除 输入输出 Ptask 实例 文档 读入 操作


前言

最近在写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,实例,文档,读入,操作
来源: https://www.cnblogs.com/mngmbear/p/12643978.html

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

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

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

ICode9版权所有