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 对象指定了一个输入流
版权声明:本文标题:c语言文件操作 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710812209a574354.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论