自己项目需要,封装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语言读写文件的更多相关文章

  1. C语言读写文件

    对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: 字符读写函数  :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式 ...

  2. 如何用C语言读写文件

    #include "stdio.h"#include <stdlib.h> main(){ FILE *fp1;//定义文件流指针,用于打开读取的文件 FILE *fp ...

  3. 第28月第3天 c语言读写文件

    1. int ConfigIniFile::OpenFile( const char* szFileName ) { FILE *fp; size_t nLen; int nRet; CloseFil ...

  4. go语言读写文件

    package main import ( "fmt" "io/ioutil" "os" ) func main() { filename ...

  5. 「C语言」文件的概念与简单数据流的读写函数

    写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实, ...

  6. C语言基础文件读写操作

    整理了一份C语言的文件读写件操作代码,测试时打开相应的注释即可. #include <stdio.h> #include <stdlib.h> #include <uni ...

  7. R语言读写中文编码方式

    最近遇到一个很头疼的事,就是 R语言读写中文编码方式.在网上找到了一篇博文,谢谢博主的精彩分享,让我很快解决了问题,在此也分享一下 R语言读写数据的方法很多,这里主要是我在使用read.csv/rea ...

  8. Inno Setup 如何读写文件

    软件安装的实质就是拷贝,对于简单的打包当然不需要考虑修改某(配置)文件.通过inno修改文件的目的在于把安装时相关信息写入文件中,提供其它应用的读取,而这些信息也只能在安装时才能确定,比如安装用户选择 ...

  9. C#常用IO流与读写文件

    .文件系统 ()文件系统类的介绍 文件操作类大都在System.IO命名空间里.FileSystemInfo类是任何文件系统类的基类:FileInfo与File表示文件系统中的文件:Directory ...

随机推荐

  1. map与unordered_map区别及使用

    需要引入的头文件不同map: #include <map>unordered_map: #include <unordered_map> 内部实现机理不同map: map内部实 ...

  2. URI和URL的区别(转)

    转载:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html 这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java B ...

  3. Linux—&#160;查看系统的位数

    [root@zf-test-web01-4 ~]# file /bin/ls           #"/bin/ls" is a binary file /bin/ls: ELF ...

  4. Office2020-2021 离线安装教程

    首先:先安装两个 net .再安装 office 如下: DownFile:https://pan.baidu.com/s/19iykxwofXK36wWY5w4GVFg  codenum:6666

  5. 商业创新不能等?用友低代码开发平台YonBuilder为您加速!

    随着云计算.人工智能.物联网.大数据.5G等新一代技术的快速发展,越来越多的企业希望借助技术的力量加速数智化转型,期许通过更加敏捷和强大的应用系统推动企业的商业创新速度.但传统软件开发周期长.开发成本 ...

  6. .NET Core基础篇之:集成Swagger文档与自定义Swagger UI

    Swagger大家都不陌生,Swagger (OpenAPI) 是一个与编程语言无关的接口规范,用于描述项目中的 REST API.它的出现主要是节约了开发人员编写接口文档的时间,可以根据项目中的注释 ...

  7. A Child's History of England.43

    PART THE SECOND When the King heard how Thomas à Becket had lost his life in Canterbury Cathedral, t ...

  8. js中!!的妙用

    0.-0.null."".false.undefined 或者 NaN转化为false,其他为true

  9. tomcat 8 内存优化

    在Linux环境下设置Tomcat JVM,在/opt/tomcat/bin/catalina.sh文件中找到"# ----- Execute The Requested Command&q ...

  10. OSGi系列 - 使用Eclipse查看Bundle源码

    使用Eclipse开发OSGi Bundle时,会发现有很多现成的Bundle可以用.但如何使用这些Bundle呢?除了上网搜索查资料外,阅读这些Bundle的源码也是一个很好的方法. 本文以org. ...