大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、二进制文本使用fopen函数的二进制模式“rb”就可以打开。对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。 C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、兴国网站维护、网站推广。
2、fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
3、例程:
#include stdlib.h
#include stdio.h
int main ()
{
FILE * fpPhoto, * fpText, * fpTarget ;
int iRead ;
char szBuf[100] ;
printf ("请输入第一个文件名(jpg):\n") ;
gets (szBuf) ;
fpPhoto = fopen (szBuf, "rb") ;
printf ("请输入第二个文件名(txt):\n") ;
gets (szBuf) ;
fpText = fopen (szBuf, "rb") ;
printf ("请输入目的文件名(jpg):\n") ;
gets (szBuf) ;
fpTarget = fopen (szBuf, "wb") ;
if (!fpPhoto || !fpText || !fpTarget)
{
printf ("打开文件失败!\n") ;
system("pause") ;
return -1 ;
}
while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpPhoto)) 0)
fwrite (szBuf, 1, iRead, fpTarget) ;
while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpText)) 0)
fwrite (szBuf, 1, iRead, fpTarget) ;
fclose (fpPhoto) ;
fclose (fpText) ;
fclose (fpTarget) ;
return 0 ;
}
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
一、作用不同
1、rb:代表二进制文件,用来读写二进制文件。
2、r:代表文本文件,用来读写文本文件。
二、特点不同
1、rb:文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。
2、r:是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。
三、优劣不同
1、rb:二进制文件比较节约空间,这两者储存字符型数据时并没有差别。但是在储存数字,特别是实型数字时,二进制更节省空间。
2、r:文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符定长,译码相对要容易一些。
参考资料来源:百度百科-二进制文件
参考资料来源:百度百科-文本文件
"r".为读而打开文本文件.(不存在则出错)
"rb".为读而打开二进制文件
while(!feof(fp)) 文件到尾判断
最常用的文件使用方式及其含义如下:
"r".为读而打开文本文件.(不存在则出错)
"rb".为读而打开二进制文件.
"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)
"wb".为写而打开二进制文件.
"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)
"ab".为在文件后面添加数据而打开一个二进制文件.
"r+".为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变)
"rb+".为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失)
"wb+".功能与"w+"同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
"a+".功能与"a"相同;只是在文件尾部添加新的数据后,可以从头开始读.
"ab+".功能与"a+"相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置.