admin 管理员组

文章数量: 1086019


2024年3月19日发(作者:influence读音)

c语言文件操作

一.文件的打开和关闭-fopen()函数和fclose()函数

为C语言提供的文件类型,它是一个结构体类型,用于存放文件的相关信息。

FILE*即为文件指针类型,通过该指针,我们可以对其相关联的文件进行一系列操作。

2.为了打开文件,文件名是不可缺少的。如果要打开当前目录下的文件,可只用输入

文件名,否则应该输入文件的绝对路径,如:c:

为打开文件的几种方式,常见的有"r"(只读),"w"(只写),"a"(文件末尾追

加),"rb"(二进制件打开,只读),"wb"(二进制件打开,只读),"ab"(二进制件打开,追加)等。

用"r"方式打开文件,若文件不存在,则返回一个空指针表示错误。若用"w"或"a"打开

文件,则若文件不存在,都会创建一个新文件,即使文件存在,写入时也会把原有内容先

进行覆盖

4.在对文件进行相关操作后应该及时使用fclose函数进行关闭,以便及时释放资源

5.若fopen函数打开失败,则返回空指针,且设置全局变量 errno 来标识错误,因

此打开文件后应该做必要的判断。对于flose函数,如果成功返回值为零。如果失败,则

返回 EOF。

二.常见文件操作函数

1.字符输入函数-fgetc()

fgetc函数返回文件指针指向的字符,并使指针向下一个字符偏移。若想用此函数打印

文件全部内容,可用while((ch=fgetc(pf))!=EOF)循环来控制,这是因为当指针指向文件

结尾,函数返回值为-1

2.字符输出函数-fputc()

读取的最大字符数为(5-1)=4,这是因为字符串末尾会添加一个‘0’作为字符串

结束标志。该函数返回值为相同的 arr 参数。如果到达文件末尾或者没有读取到任何字符,

str 的内容保持不变,并返回一个空指针,因此同理可用while循环判断指针是否为NULL

实现打印全部内容。

4.文本行输出函数-fputs()

5.二进制输入-fread()

首先需要了解,文本文件内容是以ASCII形式存储,而内存中,字符是以ASCII存储,

而整形一般是以二进制进行存储,因此将字符‘4’以二进制输入(而非52),才得以输出

字符‘4’。

函数返回值为成功读取的元素总数,如果总数与 nmemb 参数不同,则可能发生了

一个错误或者到达了文件末尾。因此二进制文件的读取结束判断,可以判断返回值是否小

于实际要读的个数

其参数为:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

ptr -- 这是指向带有最小尺寸

size*nmemb

字节的内存块的指针。

size -- 这是要读取的每个元素的大小,以字节为单位。

nmemb -- 这是元素的个数,每个元素的大小为 size 字节。

stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流


本文标签: 文件 指针 函数 打开