学习笔记18-C语言-文件

文件的分类:

文本文件:  存储的是ASCII码值的二进制
二进制文件:    存储的是数据的补码

文件IO:

FILE *fopen(const char *path, const char *mode);
功能:打开或者创建文件
path:文件的路径
mode:打开模式r   以只读权限打开文件,如果该文件不存在则打开失败r+  在r的基础上,增加写权限w   以只写权限打开文件,如果文件不存在则创建,如果文件存在则会清空w+  在w的基础上,增加读权限a   以追加的形式打开文件,如果文件不存在则新建,如果文件存在则不清空,新写入的数据会在文件的文件。a+  在a的基础上,增加读权限注意:以上方式打开文件都是以文本文件形式来操作文件的,在它们的基础加上b表示以二进制形式操作文件。rb wb wb+返回值:结构指针,不需要关心它的成员,只需要知道它是操作该文件的唯一凭证。二进制形式的读写:【人无法直接读懂文件】
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);
功能:从内存中把数据写入到文件中
ptr:要写入的内存的首地址
size:一次写入的字节数
nmemb:写入多少次
FILE*:文件指针,fopen的返回值
返回值:成功写入的次数size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:从文件中读取数据到内存中
ptr:要读取到内存的首地址
size:每次读取多少个字节
nmemb:读取多少次
FILE*:文件指针
返回值:成功读取到的次数文本形式的读写【人能直接看懂文件】
int fprintf(FILE *stream, const char *format, ...);
功能:以文本形式写入数据到文件中
stream:要写入的文件指针
format:占位符...
...:变量列表
返回值:int fscanf(FILE *stream, const char *format, ...);
功能:以文本形式从文件中读取数据到内存中
stream:要写入的文件指针
format:占位符...
...:变量列表的地址
返回值:成功读取到的变量的个数int fclose(FILE *fp);
功能:关闭文件(因为有缓冲区的存在,想要立即写入到文件,关闭一下文件)文件位置指针:每个打开的文件都会有一个文件位置指针指向要读写的位置,它会随着文件的读写而移动,以r、r+、w、w+模式打开文件,文件位置指针会在文件的开头,以a\a+打开,文件位置指针会在文件的末尾int fseek(FILE *stream, long offset, int whence);功能:设置文件的位置指针stream:要设置的文件指针offset:偏移值whence:基础位置SEEK_SET:文件的开头SEEK_CUR: 文件指针的当前位置SEEK_END: 文件的末尾返回值:成功返回0,失败返回-1void rewind(FILE *stream);功能:把文件位置指针设置到文件开头long ftell(FILE *stream);功能:获取文件位置指针当前所在的位置返回:所在第几个字节int feof(FILE *stream);功能:检查文件位置指针是否已经到达末尾返回值:如果到达末尾返回非零值char *fgets(char *s, int size, FILE *stream);功能:从文件中读取一行字符串int fputs(const char *s, FILE *stream);功能:写入一个字符串到文件中,会自动添加\n在末尾int fgetc(FILE *stream);功能:从文件中读取一个字符int fputc(int c, FILE *stream);功能:写入一个字符到文件中int remove(const char *pathname);功能:删除一个文件返回值:成功返回0,失败返回-1int rename(const char *oldpath, const char *newpath);功能:重命名文件返回值:成功返回0,失败返回-1main函数的参数:是为了获取命令行的参数    argc    代表了命令行参数的总个数argv    代表了每个参数字符串的首地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用INNER JOIN ON 多表关联查询,获取指定用户下指定权限的资源SQL:

摘要:最近在看一个开源框架,其中用户,角色,资源,这块我感觉比较重要,所以就自己也模仿着写了下,其中在获取指定用户下的权限资源的时候遇到问题了,开始时,我首先想到的方…

Maven学习记录之maven基本操作命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse中创建maven工程:...

摘要:今天又学习了一下maven,之前是下载并安装和配置好了maven的环境,今天主要学习的内容包括:maven本地工厂的创建,maven骨架的生成命令,maven在dos下创建maven工程,以及在eclipse中创建mavne工…

Oracle中通过游标执行带参数的存储过程实现解析CLOB字段内的xml字符串:

摘要:近来之前的项目数据出现了问题,原因是由于之前在设计数据库的时候把时间字段设置成了字符串格式,所以给后期的数据操作带来了很大的麻烦,这里提醒一下各位程序猿,以后在开发项目的时候时间字段一定要是时间字段&a…

Eclipse中使用Checkstyle,checkstyle插件检查java代码的自定义配置文件:

摘要:近来项目组在搞代码检查,所以领导让把checkstyle这个插件搞明白,现在我把我们写的自定义的checkstyle.xml文件记录一下,以便大家可以一起使用: 一:要使用checkstyle插件在eclipse中检查java代码&…

Linux 下安装 jdk-7u75-linux-x64.gz,jdk1.7.0_75,jdk1.7步骤:

摘要:近来又用到了Linux系统,所以就又新装了一个虚拟机和CentOS 6.4来用,搞开发的程序猿们可能都知道,在现在的很多企业中,生产环境大多都是Linux服务器,并且用的比较多的大都是CentOS,Red hat系…

Win7+VMware10.0+CentOS 6.4+Tomcat,Win7访问不了CentOS6.4上的Tomcat

摘要:今天在linux下安装Tomcat后,在虚拟机本地通过:http://localhost:8080/可以访问安装好的Tomcat服务器,但是在本机就不能访问,前提是在本机下可以ping的通虚拟机的IP地址的,最后经过Google,发现说可能是…

Linux下配置OpenLDAP服务记录

摘要:最近部门需要整合所有的系统,所以领导说要通过OpenLdap数据库来实现对所有系统的统一管理,所以需要在服务器上配置一下LDAP服务,我们这里选择的是OpenLdap服务,我在网上搜索了很多,开始都没有配置成功…

Linux下配置CollabNet Subversion Edge

摘要:最近一直都在搞一下管理员的工作,今天又搞了svn的管理工具CollabNetSubversionEdge,网上也有很多例子,但是很多都是可以访问到web界面,但是不能启动版本库的服务,所以我经过多次尝试,终于解…

养成让自己进步的10个习惯

养成让自己进步的10个习惯 1.永远不说不可能。"办法总比问题多" 2.凡事第一反应找方法,不是找借口。"不要推卸责任" 3.养成记录习惯,不太依赖脑袋。"好记性不如烂笔头" 4.每天出门照镜子,给自己自信的微笑。&…

Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串:

摘要:之前在项目中使用到了Oracle数据库中通过触发器去调用存储过程执行数据解析并Update到对应的数据表中,但是,经过一段时间的测试使用发现,如果job那天停掉了,然后你再重新新建job的话,这时候可能会有很…

Maven配置nexus

摘要:近来一直在搭建maven结构的开发框架,其中这个过程中用到了nexus私服,这里我把我经过查询总结的最终的方式记录一下,以便后面忘记了: 一:nexus私服的安装(略) 二:仓库的讲解如下图: 1、ho…

Maven项目发布的配置

摘要:要想发布maven结构的项目到nexus私服上,可以通过两种方式来,一种是在项目的pom.xml文件里面配置,另一种是通过命令的方式发布到nexus私服上,但是这种方式的前提也得在settings.xml文件配置用户: 一:M…

MariaDB通过命令行的方式导出指定数据库和还原指定数据库

摘要:今天由于需要需要从本地导出一份VP系统的数据库脚本,以前我都是通过工具直接导出,现在有同事说可以通过mysql的命令方式导出,我试了一下,可以,现在记录一下! 一:在MariaDB的安装…

java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener

一:如果出现下面的错误信息,如果你的项目是Maven结构的,那么一般都是你的项目的Maven Dependencies没有添加到项目的编译路径下: 五月 10, 2015 6:23:18 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR …

Maven 打成 Webjar的方法

摘要:今天领导说要把自己定义的样式文件和js文件打成一个自定义的webjar,所以就写了一下,现在记录一下: 1. 先把要打包成webjar的文件放到你新建的maven结构的项目的/src/main/resources目录下 2.编写该项目的pom.xml文件&#…

Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

摘要:今天领导说要把项目通过maven生产源码包和文档包并发布到自己的私服上,经过查看mavne官网发现有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是maven-javadoc-plugin,现在记录一下&#xff0…

Maven之生成测试覆盖度的插件cobertura-maven-plugin的使用

摘要:Maven中可以通过使用插件检查一个项目的测试代码的覆盖度,这个插件就是cobertura-maven-plugin,这个插件如何使用我做了测试,现在记录一下! 一:首先在你的项目的pom.xml文件中增加该插件的配置&#x…

Linux下开启mysql数据库的远程访问权限

摘要:今天在Linux服务器上安装了msyql数据库,在本地访问的时候可以访问,但是我想通过远程的方式访问的时候就不能访问了,查询资料后发现,Linux下mysql默认安装完成后只有本地访问的权限,没有远程访问的权限…

Maven之自定义pom类型的基础项目

摘要:在当前的软件开发场景中,大都是通过maven管理项目,而如果使用maven的话,其实也会有很多问题,比如项目中依赖的版本管理就是一个很头疼的事,如果一个项目中有很多人同时开发那么这就很可能造成大家添加…

Maven之搭建本地私服(nexus)仓库

摘要:现在越来越多的项目都在使用Maven管理项目,尤其是在大型的项目团队中使用Maven能带来更加多的好处,私服的好处我相信大家都明白,在这里我就不多说了,它最重要的作用就是可以让项目团队成员更加方便的下载对应的项…