C/C++文件IO读写

C语言实现http下载器(附代码) 例:做OTA升级功能时,我们能直接拿到的往往只是升级包的链接,需要我们自己去下载,这时候就需要用到http下载器。 阅读详情

好久没写博客了,工作上的事情很忙,差点把写博客的好习惯给丢了,好了切入正题吧。

近段时间被高级的东西迷花了眼,net ,java,python 什么的,忘记了自己在干嘛了,机械的Coding中,当然这里并不是说这些东西不好,只是在使用它们提供的便利时候,少了许多为什么。

C语言的文件读写涉及以下需要用到的库函数和数据结构:

FILE 一个与操作系统物理文件相关联的结构体,是读写文件的前提

fput(int c,FILE *f)  写入一个字符到磁盘

fputs(char *str,FILE *f) 写入一个字符数组到磁盘

fgetc(int c,FILE *f) 从磁盘读取一个字符

fgets(char *buf,FILE *f) 从磁盘读入一个字符数组

fopen(FILE *f,const char *mode) 打开一个物理文件与一个FILE的关联

fclose(FILE *f,const char *mode)关闭一个物理文件与一个FILE的关联

这里的mode是读写模式,它决定以什么模式来操作文件

“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

这里仅仅是基本的文件读写需要的函数和数据结构,并非所有的。

 

创建一个文本文件并写入数据

int main(int argc, _TCHAR* argv[])
{
    char filestr[256]="d:\\1.txt"; //创建的文件路径
    FILE *wfile; //文件结构体指针

    wfile=fopen(filestr,"w+"); //以写方式创建一个文本文件
    if(!wfile){
        printf("文件创建失败");
        return 1;
    }
    fputs("Hello,C",wfile); //写入一段字符到文件
    fclose(wfile); //关闭文件
	return 0;
}

读取文本文件数据

int main(int argc, _TCHAR* argv[])
{
    char filestr[256]="d:\\1.txt"; //待读取的文件路径
    FILE *rfile; //文件结构体指针

    rfile=fopen(filestr,"r"); //以读方式创建一个文本文件
    if(!rfile){
        printf("文件创建失败");
        return 1;
    }
    
    char buf[1024];//字符缓冲区

    while(!feof(rfile))
    {
        fgets(buf,1024,rfile);
        printf("%s\n",buf);
    }
    fclose(rfile); //关闭文件
    system("pause");//屏幕暂停
	return 0;
}



二进制文件的读写与文本文件基本一致

//二进制文件复制
int CopyFile(char *src,char *add)
{
    FILE *src_file=NULL;
    FILE *add_file=NULL;

    src_file=fopen(src,"rb"); //打开待复制的二进制文件
    add_file=fopen(add,"wb+"); //创建复制目标文件

    if(!src_file)
    {
        printf("待复制的二进制文件打开失败!");
        return 1;
    }
    if(!add_file)
    {
        printf("创建复制目标文件失败!");
        return 2;
    }

    char buf[1024]; //建立缓冲区
    while(!feof(src_file))
    {
        fread(buf,1024,1,src_file);
        fwrite(buf,1024,1,add_file);
    }
    
    fclose(src_file);
    fclose(add_file);

}


 用到了fread、fwrite函数忘记说了,百度一下 关键词:C fread fwrie就出来了

 

C++ 文件IO操作

 

//创建文本文件
void FileIO(string filepath)
{
    ofstream ofile(filepath.c_str(),fstream::out);
    if(!ofile)
    {
        cout<<"File Stream not valid"<<endl;
        return;
    }
    ofile<<"File System Read/Write";
    ofile.close();
    ofile.clear();
}

//读取文本文件 
void Readtxt(string filepath)
{
    //创建ifstream 对象
    ifstream ifile(filepath.c_str(),fstream::in);
    if(!ifile)
    {
        cout<<"Read File not valid"<<endl;
        return;
    }
    //缓冲区
    char p[256];
    while(!ifile.eof())
    {
        //获取一行数据
        ifile.getline(p,256);
        string line(p);
        cout<<line<<endl;
    }
    //关闭文件(类似C语言中的fclose)
    ifile.close();
    ifile.clear();
}
//复制二进制文件
void CopyFiles(string srcfile,string addfile)
{
    //创建ifstream对象读取文件
    ifstream ifile(srcfile.c_str(),fstream::binary|fstream::in);
    //创建ofstream对象写文件
    ofstream ofile(addfile.c_str(),fstream::out|fstream::binary);
    
    char buffer[1024]; //1k缓冲区
    long len=0;

    while(!ifile.eof())
    {
        len=ifile.read(buffer,1024).gcount();
        ofile.write(buffer,len);
    }
    ifile.close();
    ofile.close();
    ifile.clear();
    ofile.clear();
}


 

 

 

 

 

C/C++快速读写磁盘数据的方法-块读取/异步/优化分析算法/内存文件映射的原理和使用 快速读写磁盘数据的方法: 1.一下子将数据读取到内存的(无论是文本还是二进制),而不是一行行的读取。 2.异步的IO,创建多线程,或者使用重叠IO,IO复用,异步的事件回调通知机制(可以用事件对象,信号驱动来实现)。 3.使用内存文件映射, window是CreateFileMapping,MapViewOfFile,UnmapViewOfFile,CloseHandle;linux是用 阅读详情

相关推荐

基于MySQL的京东用户行为分析

对京东用户行为的分析,利用AARRR模型进行分析。

SelenaSelena的博客 1910

fp1=fopen(fname,"rt")中的rt是什么意思

文件 使用方式意义 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打开或建立一个二进制文件,只允许写数据 “ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+”

xumiller的专栏 5659

手把手教你用HiNet实现图像隐藏:可逆神经网络实战指南(附代码)

本文提供了一份基于HiNet框架实现图像隐藏的实战指南。通过详细解析可逆神经网络原理,手把手指导环境搭建、模型构建、损失函数设计及训练流程,并附有完整代码。该方法利用单个可逆网络统一隐藏与恢复过程,结合小波变换提升隐蔽性,为信息隐藏应用提供了高效解决方案。

rgv234567的博客 433

C语言文件操作 C - File IO

C - File I/O A file represents a sequence of bytes, regardless of it being a text file or a binary file. Opening Files You can use the fopen()function to create a new file or to open an existing file. File *fopen(const char *filename, const char *mode);

倔强的大猪猪的博客 619

23.501中英对照(46):5QI到Qos特征的映射

注4:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为1毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注5:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为2毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注6:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为5毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注:建议为任何新的非GBR资源类型的标准化5QI分配小于64的值。

51学通信的博客 1295

RAP 语义键:让 UUID 世界变得可读、可导航、可校验

RAP 语义键的核心价值与实现要点 语义键(Semantic Key)是 ABAP RAP 模型中连接技术实现与业务体验的关键设计:通过为实体指定一组业务可读的标识字段(如订单号、物料编码等),在保持技术主键(如UUID)不变的同时,显著提升用户界面的可读性和导航体验。 主要优势: 提升UI可读性:Fiori元素会突出显示语义键字段,帮助用户快速识别关键业务数据 改善导航体验:OData URL会使用可读的语义键而非技术ID,便于分享和排查问题 降低沟通成本:业务人员能准确引用有意义的业务标识而非技术ID

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 155

C/C++文件操作/IO流

学习任务:⭐认识文件。⭐学习C语言中文件如何打开和关闭。⭐学习C语言中文件的读写方法(包括顺序读写和随机读写)。⭐学习C语言文件操作中如何判断文件读取结束。⭐简单了解FILE缓冲区。⭐认识流。⭐学习C++的IO流,包括标准IO流和文件IO流,即C++的文件操作。⭐学习stringstream。学习流程:先对C语言的文件操作进行学习,然后带着建立在C语言文件操作的基础和C++基础上学习C++IO流。

wjmhlh的博客 1405

结构化数据特征构建神器openfe的实战代码

最近订阅专栏的几位同学一起参加了AI比赛,该比赛的数据形式是结构化的。随着特征和模型的不断迭代优化,达到了一个难以跨越的瓶颈。希望我能够给出一些有效的方法,帮助他们提高成绩。在个人的调研和体验后,向他们推荐了结构化数据特征构建神器openfe,最终也帮助他们提升了十来名的成绩,个人也感到十分的欣慰。特意写此博客,希望能够帮助更多的同学。 文章目录 1. 安装 2. 实战例子一 3. 实战例子二

herosunly的博客 3万+

C++入门教程:第八篇 - 文件I/O操作

我们也可以定义一个自定义类来管理文件流,进一步演示RAII的应用。这对于需要自定义文件处理行为的情况尤其有用。cppprivate:public:// 构造函数打开文件if (!// 析构函数自动关闭文件// 提供访问文件流的接口try {// 逐行读取文件内容并输出// 文件流将在此自动关闭(RAII机制)return 1;return 0;cpp在这个示例中,类封装了fstream对象,并通过构造函数打开文件。析构函数确保文件在对象销毁时被正确关闭。

HYP_Coder的博客 1789

docker部署neo4j,设置密码。Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authenti

卷,设置NEO4J_AUTH将不会起作用,因为该数据库已经配置了身份验证。Neo4j Docker 服务将会启动,但您需要使用已与该数据库关联的用户名和密码才能登录。这里,使用了环境变量NEO4J_AUTH,设置了用户名为neo4j,密码为neo4jneo4j。这个命令还是比较全的,包括设置密码,设置端口,挂载外部的数据目录等。原因嘛,就是使用docker创建的neo4j,登录不上。把👆提到的外挂的数据,都清空了,再重新来一遍。有一种情况下,这样设置密码,并不会成功。如果不出意外,目前就算大功告成了。

xiezhipu的博客 563

太美了!现代女主jk海军风穿搭四视图

哪个女孩子初高中的时候不买几套JK衣服啊,穿上完全是青春女孩。那还愣着干啥,不得也给你的漫剧女主也穿上!直接就是分享三套JK穿搭,红棕双麻花辫配经典水手服,是那种乖乖巧巧的元气学妹;粉色羊毛卷双马尾,搭配蝴蝶结和小挎包甜度直接拉满;还有灰棕色侧麻花辫,浅蓝上衣配黑色百褶裙,温柔里又带点小酷。下面把这三套角色的完整提示词分享出来,喜欢哪套就拿去参考,改改发型和配色,还能继续解锁新角色!

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 51

C和C++读写txt操作方法,以及中文乱码问题的解决

C和C++读写txt操作方法,以及中文乱码问题的解决

小花的博客 1万+

山羚羊优化算法(MGO)详解:从自然智慧到优化引擎

山羚羊优化算法(MGO)是一种新型元启发式算法,灵感来源于山羚羊的社会行为和等级制度。该算法模拟了四种核心行为:领地独居雄性(局部开发)、母系山瞪羚群(群体协作)、单身雄性山瞪羚(全局探索)和迁徙觅食(动态扰动)。MGO通过数学建模将这些生物行为转化为优化机制,在探索与开发间实现平衡。算法已成功应用于函数优化、无人机路径规划和支持向量机优化等领域,展现出优异的性能。未来研究将聚焦于参数自适应调整、混合算法设计等方向,以进一步提升算法性能。

qq_42212808的博客 203

C/C++标准IO常用函数总结

C/C++标准IO常用函数总结

Camellia__Wang的博客 550

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C++的IO流

C语言的输入与输出 C语言中我们用到最频繁的输入输出方式就是scanf和printf。scanf从标准输入设备(键盘)读取数据,并将值存放在变量中,printf将指定的字符输出到标准输出设备(屏幕)。C语言借助了相应的缓冲区来进行输入与输出。 对输入输出缓冲区的理解: 可以屏蔽低级I/O的实现,低级I/O的实现依赖操作系统本身内核的实现,所以如果能够屏蔽这部分,可以很容易写出可移植的程序。 可以使用这部分的内容实现”行“读取的行为,对于计算机而言没有”行“这个概念,有了这部分,就可以定义”行“,然后解析

JayceSun的博客 330

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【C++高阶】深入理解C++ I/O流:标准库中的隐藏宝石

在编程的世界中,输入与输出(I/O)是连接程序与现实世界的桥梁。无论是从键盘接收用户指令,还是将处理结果输出到屏幕或文件,I/O操作都是程序设计中不可或缺的一部分。对于C++这一强大而灵活的编程语言而言,其丰富的I/O流库更是为开发者提供了高效、灵活且易于使用的数据交换机制

EterNity_TiMe_的计算机学习之路 2360

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C++: IO流

文件 I/O 流在 C++ 中用于实现文件的读取和写入操作。它的主要组成部分包括文件流对象、文件打开和关闭、读取和写入文件数据、文件位置指针、文件状态检查以及错误处理。通过 ifstream、ofstream 和 fstream 对象,可以实现对文件的读取、写入和读写操作。

decade777555的博客 817

[C++]IO流

IO流的基本介绍

Protein_zmm的博客 473

C++:IO流

本文介绍了C++IO相关的内容

weixin_43908419的博客 659

C++ -- IO流

使用itoa()函数使用sprintf()函数int main()return 0;但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给多大呢,就不太好界定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃在C++中,可以使用stringstream类对象来避开此问题。在程序中如果想要使用stringstream,必须要包含头文件 。stringstream主要可以用来:1. 将数值类型数据格式化为字符串

m0_66409987的博客 321

C C++ POSIX 的一些 IO 操作

一些 C C++ POSIX 的 IO 操作总结 文件-内存之间 内存-内存之间 POSIX 有无缓冲的 IO 操作 对文件的操作,读文件至内存,从内存写至文件 // 读文件至内存buf中 void Fread() { char buf[BUFSIZE]; size_t flen = 0; FILE *fp = fopen("./f...

yequ 的博客 719

C/C++技术栈 —— C语言基础

文件的读写 从操作系统的角度看,每一个与主机相连的输出输入设备都 可以看作是一个文件。 #include<cstdio> #include<cstdlib> using namespace std; int main(){ FILE *fp; fp = fopen("E:\\data....

键盘国治理专家的博客 1293

【C++】IO流

本文摘要:文章系统介绍了C/C++中的输入输出机制。在C语言部分,重点讲解了scanf()和printf()函数的使用方法及输入输出缓冲区的作用。C++部分详细阐述了流的概念及其特性,分析了标准IO流(cin/cout等)的工作原理和使用注意事项,包括类型转换和循环判断机制。同时介绍了文件IO流的操作流程,通过示例展示了二进制文件和文本文件的读写方法,并说明了C++流对内置类型和自定义类型的统一处理优势。文章内容由浅入深,涵盖了从基础概念到实际应用的关键知识点。

wefg1的博客 1064

read和write函数学习笔记

运行时库包括标准库,同时有包含自己平台相关的一些库。(NOTE)注:这里有几个概念我之前一直不是很清楚,所以也简单整理了一下:POSIX:可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种。

宁海游鱼 1983

【C++进阶】详解C++类型转换&IO流

到这里我们C++的知识就要这里基本结束了,后面我还会带来更多的其他内容,请大家继续关注哦。

weixin_64906519的博客 966

C/C++文件操作干货

注意:如果不使用绝对路径(完整的建立路径,如:c:\yyy\xxx\xx.txt)而是直接用文件名(xx.txt),每次建立新文件夹的时候都会在默认路径,如果想要在默认路径前一个目录(如:xxx)中建立,只需要把("test.txt","w+")改为("./../test.txt","w+"),前两个就是("./../../test.txt","w+").从键盘,网络,c盘等储存设备中读取数据的读取方式方式各不相同,同样的,输出数据的方式也有许多(比如输出到屏幕,写在文件中);

2302_80221042的博客 1795
上一篇: DBCP 数据库连接池配置
下一篇: Java 内省技术(Introspector)
IT回忆录
博客等级 码龄16年 42粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值