c语言文件操作

本文详细介绍了程序运行中的数据如何在内存中储存,区分二进制和文本文件的区别,以及流和标准流的概念,包括stdin、stdout和stderr的用途。此外,还讲解了文件操作函数如fopen、fclose,以及文件读写、随机访问的相关函数如fread、fwrite、fseek和ftell等。
摘要由CSDN通过智能技术生成

引言

程序运行后的数据储存咋内存中,会随着程序退出而销毁,但如果我们要保存下程序运行的数据的话,就可以使用文件

正文

二进制文件和文本文件

根据数据类型可以将文件分为二进制文件和文本文件

二进制文件 数据在内存中以二进制储存,不加转换就可以直接输出到外部文件

文本文件     数据以ascll码储存,需要在输出是转换为二进制

数据在储存中,字符以ascll码值储存,数值以ascll码值或者二进制储存

文件的打开和关闭

流 和 标准流

程序的数据需要输入输出到各种外部设备中,而从外部设备输入输出数据的方式都不相同,这就引入了流的概念,把对外部设备输入输出数据的操作统统称为从流里面的输入输出设备,可以人为流是一条流着数据的河

程序在启动时会默认打开3个标准流

stdin  标准输入流,大多数的环境中从键盘输入,scanf函数就是从标准输入流中得到数据

stdout  标准输出流,大多数环境都是输出到屏幕上,比如printf

stderr 标准错误流,大多数输出到屏幕上

这三个流的类型都是FILE* ,称为文件指针

文件指针

在文件打开的时候,编译器会在内存中自动开辟一个叫做FILE结构体,自动填充关于该文件的

信息,所以通过指针FILE* 就可以找到目标文件并对其进行操作

 文件操作函数

在使用文件时要先打开文件,使用完后要关闭文件 

fopen  打开文件  fclose  关闭文件 头文件都是<stdio.h>

fopen

fopen(打开文件名字,以什么方式打开文件)

打开方式

  因为不存在open.txt这个文件,所以pf的值为NULL,assert断言为假程序错误

而用打开类型为‘w’的话,会自己创建一个open.txt的文件

fclose

关闭文件,传入该文件指针

文件读写函数

fgtec

从指定流中读取数据 成功返回该数据,失败返回EOF

fputc

将一个字符写入流中 成功返回成功读写的字符  失败返回EOF

当用"w"打开文件时,文件里的内容会被清空

fgets

从流里面的到num个字符,成功返回该字符串,失败返回NULL

会在读取结束后往末尾添加一个'\0' 所以实际上从pf中读取的实际时5个字符,要注意的时num必须大于一,如果为一就不会在文本中读取字符,而是直接加上'\0'

fupts

将一串字符串写入流中 成功返回非零值 失败返回0

fprintf

 

将format指向的数据输入到指定流中,成功返回成功输入的个数,失败返回一个负数

fscanf

从流里读取数据 成功返回成功读取的数量,失败返回EOF

从pf指向的文件同以字符串的方式读取数据储存到数组中

文件的随机读写

fseek

origin是起始位置可以是

在指定流中从origin位置起偏移offset个元素,将光标停在那个位置

成功返回0,失败返回非零

ftell

返回现在光标位置先对于起始位置的偏移量

rewind

将光标回到起始位置

END

o( =•ω•= )m

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值