首先什么是文件?
我们之前写的很多代码其实都是使用“变量”、“内存”。
内存:容量小、速度快,关闭后数据会消失。
外置(硬盘) :容量大、速度慢,关机后仍有数据残留。
一.档案分类
1 .普通文件
文档
二进制文件
区分:简单来说,使用记事本打开此文件,如果看到乱码,则为二进制文件,反之则为文本文件。 默认情况下,记事本按文本文件打开。
2.c语言如何操作文件
打开fopen :文件
fclose :关闭文件
fread :读取文件
fwrite :写文件
文件在磁盘上。 直接操作磁盘并不容易。 因此,操作系统是封装的。 打开文件时,实际上在内存中创建一个变量(FILE结构变量),该变量与磁盘上的文件相关联。
fopen
fle*也称为文件指针,执行各种文件操作离不开FILE*。
filename是要打开的文件的名称
mode是打开的方式
开放方式包括:
打开用于读取“r”的文件。 文件必须存在。 创建用于“w”写入的空文件。 如果文件名与现有文件相同,则删除现有文件的内容,并将文件视为新的空文件。 “a”被添加到一个文件中。 写入将数据添加到文件的末尾。 如果文件不存在,请创建文件。
“rb”、“wb”和“ab”表示以二进制方式处理文件。
标准库引入了“错误代码”(error number,简称errno )的机制,指出了失败的原因。
使用0表示成功,使用其他值表示失败。 失败会赋予不同的值。 可以使用名为strerror的函数翻译错误代码。
fclose
fclose的使用方法非常简单,就是有参数,FILE*。 这是fopen返回的结果。
如果变成了fopen,但是没有fclose,就有可能发生文件资源的泄露。
领先优势
1 .你读文件是做什么的? 就是把磁盘上的数据复制到内存里! 因此,为了保存该结果需要存储器空间,void*ptr是该存储器空间。
2.count表示复制多少个元素,size表示每个元素的大小
3.FILE表示fopen需要传递返回的结果,通过该FILE*可以找到文件在磁盘中的相应位置。
4.size_t表示成功写入的要素的数量,count表示期待到多少要素。
白色
1.void*ptr指向一个存储器,写文件其实是把存储器中的数据复制到文件中。
欧洲足球锦标赛
文件结尾:已经加载了文件,如果再次尝试加载,它将读取EOF。
EOF实际上是-1,表示文件已使用-1数据完成读取,而不是ASCII代码表中的字符。
scanf格式输入、fprintf格式输出、使用方法与scanf、printf类似,只是符合一个FILE*参数~
sscanf:从字符串中分析一个内容,
sprintf:将格式结果输出到字符串中。
特别重要的作用:字符串和转换数字~
fseek (随机读写) :效果是设置光标的位置。
ftell会检查光标的位置。