C++封装C语言读写文件
自己项目需要,封装C语言读写文件。 为了兼容低版本的编译器,因为低版本的编译器(比如,Vs2010,Vs2008)他们可能不支持 modern c++。
项目
使用 cmake管理的项目。
可以在 gitee 下载源码
接口说明
函数名 功能 init_ 初始化, 打开文件 file_ 获取初始化的文件 is_opened_ 检查文件是否打开 length_ 返回文件长度,单位:字节 write_ 写文件,函数有重载 read_ 读文件,函数有重载 is_existed_ 检查参数中的文件是否存在 uninit_ 释放资源,销毁文件读写对象前, 请先调用该函数,避免析构出现异常 一个使用范例
#include <iostream>
#include <oct_toolkits.h>
void call_file()
{
using namespace oct_toolkits;
using namespace std;
/// 创建文件对象
ifile* pfile = create_ifile_();
if (NULL == pfile)
{
cout << "call_file, pfile = null";
return;
}
/// 1.
std::string str_file("C:/game/file_demo/ssr.txt");
/// 下面这样的方式也可以
//std::string str_file("C:\\game\\file_demo\\ssr.txt");
/// ----------------------------------------------------------------------------------------
/// 下面是检查文件是否存在
if (true == pfile->is_existed_(str_file))
{
cout << "文件存在\n\n";
}
else
cout << "文件不存在\n\n";
int ret = 0;
ret = pfile->init_(str_file, kmode_rtp);
if (0 != ret)
{
cout << "call file, init != 0, ret=" << ret;
pfile = release_ifile_(pfile);
return;
}
/// 读取文件长度
cout << "文件长度=" << pfile->length_() << "\n";
cout << "文件是否打开=" << pfile->is_opened_() << "\n";
cout << "文件是=" << pfile->file_();
/// 下面读取文件内容
cout << "\nstring 读取文件------";
std::string str_content;
ret = pfile->read_(str_content);
if (0 != ret)
{
cout << "文件读取失败, ret=" << ret;
}
else
{
cout << "文件内容是" << str_content.c_str() << "\n";
}
/// ----------------------------------------------------------------------------------------
///
char arr[20] = { 0 };
cout << "\nchar 读取文件------";
ret = pfile->read_(arr, 20);
if (0 != ret)
{
cout << "文件读取失败, ret=" << ret;
}
else
{
cout << "文件内容是" << arr << "\n";
}
/// 下面是写文件
cout << "\n下面是std::string写文件";
std::string str_write("ABCDEFG");
ret = pfile->write_(str_write);
if (0 != ret)
{
cout << "写文件发失败,ret=" << ret << "\n";
}
else
{
cout << "写文加成功, ret=" << ret << "\n";
}
cout << "\n\n下面是char 写文件-------";
char arr_write[] = { "0987654321" };
ret = pfile->write_(arr_write, 10);
if (0 != ret)
{
cout << "写文件发失败,ret=" << ret << "\n";
}
else
{
cout << "写文加成功, ret=" << ret << "\n";
}
pfile = release_ifile_(pfile);
}
int main(int argc, char* argv[], char* env[])
{
call_file();
//system("pause");
return 0;
}
C++封装C语言读写文件的更多相关文章
- C语言读写文件
对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: 字符读写函数 :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式 ...
- 如何用C语言读写文件
#include "stdio.h"#include <stdlib.h> main(){ FILE *fp1;//定义文件流指针,用于打开读取的文件 FILE *fp ...
- 第28月第3天 c语言读写文件
1. int ConfigIniFile::OpenFile( const char* szFileName ) { FILE *fp; size_t nLen; int nRet; CloseFil ...
- go语言读写文件
package main import ( "fmt" "io/ioutil" "os" ) func main() { filename ...
- 「C语言」文件的概念与简单数据流的读写函数
写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...
- C语言基础文件读写操作
整理了一份C语言的文件读写件操作代码,测试时打开相应的注释即可. #include <stdio.h> #include <stdlib.h> #include <uni ...
- R语言读写中文编码方式
最近遇到一个很头疼的事,就是 R语言读写中文编码方式.在网上找到了一篇博文,谢谢博主的精彩分享,让我很快解决了问题,在此也分享一下 R语言读写数据的方法很多,这里主要是我在使用read.csv/rea ...
- Inno Setup 如何读写文件
软件安装的实质就是拷贝,对于简单的打包当然不需要考虑修改某(配置)文件.通过inno修改文件的目的在于把安装时相关信息写入文件中,提供其它应用的读取,而这些信息也只能在安装时才能确定,比如安装用户选择 ...
- C#常用IO流与读写文件
.文件系统 ()文件系统类的介绍 文件操作类大都在System.IO命名空间里.FileSystemInfo类是任何文件系统类的基类:FileInfo与File表示文件系统中的文件:Directory ...
随机推荐
- iTOL进化树调图细节记录
目录 1. 注册 2. 去枝长 3. 加图例 4. 无根树颜色 5. 导出图片 iTOL基本用法已经会了,之前记录过一点:系统发育(进化)树绘制小结.最近重用,调图时又发现了些细节,记录下备忘. 1. ...
- R同时保存png/pdf等格式图片
R怎么同时保存png/pdf等多种格式的图片? 如果是ggplot对象,用ggsave用两下就行,如果不是呢? png/pdf()组合dev.off()是通常保存方法,但一个组合只能保存一个图片.要想 ...
- rsync实现windows和windows之间的数据同步
一:环境 1.同步对象:测试数据 2.服务端:Windows Server 2008 R2 3.客户端:Windows7 旗舰版64位 4.服务端rsync版本:cwRsyncServer_4.1.0 ...
- 学习java的第二十八天
一.今日收获 1.java完全学习手册第三章算法的3.2排序,比较了跟c语言排序上的不同 2.观看哔哩哔哩上的教学视频 二.今日问题 1.快速排序法的运行调试多次 2.哔哩哔哩教学视频的一些术语不太理 ...
- 【XSS】再谈CSP内容安全策略
再谈CSP内容安全策略 之前每次都是想的很浅,或者只是个理论派,事实证明就是得动手实践 参考 CSP的用法 官方文档 通过设置属性来告诉浏览器允许加载的资源数据来源.可通过Response响应头来设置 ...
- 100个Shell脚本——【脚本4】自定义rm命令
[脚本4]自定义rm命令 linux系统的rm命令太危险,一不小心就会删除掉系统文件. 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除.下面分两种情 ...
- Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
- App内容分享
1.发送文本内容 发送简单的数据到其他应用,比如社交分分享的内容,意图允许用户快速而方便的共享信息. //分享简单的文本内容 public void btnShareText(View view) { ...
- 实现将rsyslog将日志记录与MySQL中
准备两个节点 node3: rsyslog node2: 数据库 准备相应的包 [root@node3 php-fpm.d]#yum install rsyslog-mysql 将数据拷贝到数据 ...
- Python格式处理
目录 一.CVS表格 二.xml 三.json 四.yml 五.配置文件 六.数据库 一.CVS表格 import csv villains = [ ['Doctor', 'No'], ...