赞
踩
本文只涉及具体的文件操作步骤,无文件理论相关知识 。
首先,对文件进行读取与写入时,都需要先打开文件。
我们可以使用C语言标准库提供的fopen和fclose进行打开与关闭。
filename(文件名),mode(模式),FILE(文件)。
解读一下:FILE是C语言规定的文件指针类型(结构体指针)。当文件运行时会产生文件信息区(内存),这块内存存放着一个结构体FILE,用于存放文件相关信息,如:文件的名字,文件状态及文件当前的位置等,而指向这块内存(结构体)位置的指针就是文件指针(FILE)本质就是一个结构体指针。如图(vs2013版本):
mode:我们要对这个文件进行怎样的操作(简单举例)。
注意:mode是(const char *)类型的变量。而" abcd "这样的字符串作为变量时传入的就是首字符的地址。切记不要写成 ( ' ' )单引号了。
" w " | 为了输出数据,打开⼀个⽂本⽂件 | 建⽴⼀个新的⽂件 |
" r " | 为了输⼊数据,打开⼀个已经存在的⽂本⽂件 | 出错 |
" a " | 向⽂本⽂件尾添加数据 | 建立一个新文件 |
fclose(成功返回0,失败返回EOF),stream(待关闭文件的文件指针)。
函数名 | 功能 |
---|---|
fputc | 单个字符输入(程序到文件) |
fgetc | 单个字符读取(文件到程序) |
fputs | 字符串的输入 |
fgets | 字符串读取 |
fprintf | 格式化输入(写)到指定流中 |
fscanf | 格式化从指定流中读取(读)数据 |
fwrite | 二进制输入(写)到指定流中 |
fread | 二进制从指定流中读取(读)数据 |
character(字符)(之所是int型,是ASCLL码值),stream(输出流)(写入的文件地址)。fputc(返回输入字符的ASCLL值)。
stream(文件地址),fgetc(成功返回字符的ASCLL,失败返回EOF)
str(要输入的字符串),stream(待输入的文件的地址),fputs(成功返回非负值,失败返回EOF)。
str:(读取文件,就是从文件里面拿数据。既然拿数据,数据需要存放的空间。前面的fgetc读取一个字符,直接返回该字符的ASCLL值,也算是将数据储存了。而该函数返回一个字符串,就需要一个字符数组来接收。)
num:(读取的最大字符数。默认在最后一位添加 ' \0 ',所以实际上读取 ( num - 1 )位,当文件大于num-1是只读到 num-1 位加 ' \0 '结束,小于num -1 时,有几位读取几位。)
stream:(待读取的文件的地址)
fgrts:(返回储存文件的地址,与上文创建的字符数组地址一样。)
stream(流)(待输入的文件的地址)(stdout 标准输出流 对应屏幕终端)
format(格式)(与printf一样)
printf就是把直接输出到屏幕终端,也就是(FILE*stream)为(stdout)的情况。
fprintf(成功输出的数据个数)
从右到左,把(........)的数据以(..........)的形式输出到 / 写到 (..........)里
fscanf较scanf函数多了一个参数(FILE * stream),scanf从键盘终端收取数据,传输(写)到后面的地址。而fscanf多出的(FILE*stream)就是从指定的流中收取数据,写到指定的地址处。
以二进制的形式输入(写入 " wb " )文件。
ptr:(待写入的文件的地址)
size:(输入文件个数)
count:(每一个元素的大小)
stream:(输出流)(输出文件的地址)
(小端存放)
从stream中以二进制读取数据传输到ptr指向的地址中。
以上函数使用后会默认将文件内的光标向后移动一位,即按顺序操作。
调整文件内的光标。
stream:(流)操作文件的文件地址。
offset:(偏移量)相对于origin。
origin:(位置)该参(SEEK_SET)起始位置,(SEEK_CUR)当前位置,(SEEK_END)文件末尾位置。
调整文件光标到起始位置。
stream(待调整文件的文件地址。)
返回当前文件光标偏离量。
stream:(待操作的文件地址)
ftell
feof :在文件结束后,判断是否是读取到文件结尾。
ferror :在文件结束后,判断是否是读取错误。
总结:二者一般连用,且目的是分析文件读取结束的原因。
stream:(待操作文件)
feof:(是结尾返回非零值)
ferror:(出错返回非零值)
初学C语言,如果有哪里写的不好的地方,欢迎在评论区指点,如果认为小编写的还不错的,可以留下你们点赞 ,收藏和关注,这是对小编极大的认可也是小编继续走下去的动力。谢谢大家!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。