对文件的操作

本文详细讲解了二进制文件和文本文件的区别,包括它们在内存中的存储方式、文件读写函数的使用,以及如何正确处理数字和字符的转换。重点介绍了常见的文件操作函数如fgetc、fputc等,并讨论了文件指针定位的方法和不同打开模式如'r'、'w'、'a'等的应用。
摘要由CSDN通过智能技术生成

1.文件的分类 :文件分为二进制文件和文本文件

首先,所有的数据在内存中都是以二进制形式存在的.只是存二进制之前的状态有所不同

二进制文件就是在内存中什么样子,在文件中就是什么样子,例如数字在内存中以二进制存储,如果将他写进文件里就是以二进制形式放进了外存,也就是所谓的文件,但是咱们电脑上文件的打开方式比较单一,大多数情况下会出现乱码,因为打开方式不对.或者说不同的打开方式读取内存中二进制码的方式不同,二进制文件就是直接将内存中的二进制码读出来以二进制的方式放在文件里.并且以特定的方式打开看到的就是二进制序列.也就是二进制文件.

文本文件就是:假如把写入内存的文件用记事本打开,因为记事本在读取是会将存入二进制序列当成assic码,然后翻译assic码.翻译后的内容就会被写进文件里.记事本等这种打开方式用assic码的和内存中的二进制进行比较翻译.

再说说存储方式

数字再内存中以二进制形式存在,字符以assic码形式存在,如果要将一个数字写进文件里,用记事本打开会出现乱码,因为数字存的是他的二进制,记事本读取时会把他当成assic码,然后翻译出来.字符本身就是以assic码形式存的,所以记事本打开的文件就是字符了,如果要把数字写进文件里就需要对数字进行转换将数字转换成字符.

文件中的读写函数

功能函数名适用于
字符输入函数fgetc所有输入流
字符输出函数fputc所有输出流
文本行输入函数fgets所有输入流
文本行输出函数fputs所有输出流
格式化输入函数fscanf所有输入流
格式化输出函数fprintf所有输出流
二进制输入fread文件
二进制输出fwrite文件
输入字符串的函数sprintf字符串
在字符串中读取字符sscanf字符串

文件使用方式含义如果指定的文件不存在
"r"(只读)为了输入数据打开一个已存在的文件出错
"w"(只写)为了输出文件打开一个文本文件建立一个新的文件
"a"(追加)

向文本文件尾添加数据

出错
"rb"(只读)为了输入数据打开一个二进制文件出错
"wb"(只写)为了输出数据打开一个二进制文件建立一个新的文件
"ab"(追加)向一个二进制文件末尾添加数据出错

fputc(char,流)将字符char写进指定的流里并且每次只写一个字符.

fgetc(流)从指定的流里读取字符,该函数以无符号 char 强制转换为 int 的形式返回读取的字符,%c打印就行..如果到达文件末尾或发生读错误,则返回 EOF。

这里添加一个判断函数是读完文件里的内容导致返回还是因为读取错误而返回的函数

feof()是检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0,,参数就是流.

fputs(一个字符串(指针类型),流)将字符串写进流里

fgetc(str,n,流)从指定的流中读取最多n-1个字符放在str字符串里.字符串最后一位放\0.

fprintf(流,"   %d",n)和printf写在显示器上一样,只是printf默认为标准输入流,第一个参数就省略了""里的内容会被写进指定的流中

fscanf(流," %d",&n)和scanf一样格式化读取,只是fscanf会指定流

sizet_t  fread(void*ptr,size,count,文件流)读取文件流中count个元素,一个元素size大小.放在ptr中,返回值是成功读取的元素个数.

size_t  fwrite(void*ptr,size,count,文件流)将ptr中的数据写count个在文件里,返回值为成功写入的个数.

涉及到文件里指针位置

int fsee件函数ck(文件流,m数字,n位置)将指针指向离n位置的m个位置

件函数位置有SEEK_SET(文件开头)SEEK_CUR(当前位置)SEEK_END(文件末尾)

long  int ftell(文件流),返回指针相对于起始位置的偏移量.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值