C语言文件中,“rb”和“r”有什么区别?

Python016

C语言文件中,“rb”和“r”有什么区别?,第1张

一、作用不同

1、rb:代表二进制文件,用来读写二进制文件。

2、r:代表文本文件,用来读写文本文件。

二、特点不同

1、rb:文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。

2、r:是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。

三、优劣不同

1、rb:二进制文件比较节约空间,这两者储存字符型数据时并没有差别。但是在储存数字,特别是实型数字时,二进制更节省空间。

2、r:文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符定长,译码相对要容易一些。

参考资料来源:百度百科-二进制文件

参考资料来源:百度百科-文本文件

wb代表二进制模式文件,允许写入文件,rb代表二进制模式,允许读取文件。

形态字符串都可以再加一个 b 字符,如 rb、w+b 或 ab+ 等组合,加入 b 字符用来告诉函数库以二进制模式打开文件。

如果不加 b,表示默认加了 t,即 rt、wt,其中 t 表示以文本模式打开文件。由 fopen() 所建立的新文件会具有 S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666) 权限,此文件权限也会参考umask值。

扩展资料

C语言之文件打开模式

r : 读取文件,若文件不存在则会报错

w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件

a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾

rb,wb:分别于r,w类似,但是用于读写二进制文件

r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖

w+ : 可读,可写,文件不存在先创建,会覆盖

a+ :可读、可写,文件不存在先创建,不会覆盖,追加在末尾

参考资料来源:百度百科—c语言

参考资料来源:百度百科—fopen