用C语言打开文本文件,然后以二进制保存

用C语言打开文本文件,然后以二进制保存,第1张

这些都是c语言打开文件函数fopen的一个参数打开文件方式的值:

定义函数

file

*

fopen(const

char

*

path,const

char

*

mode)

函数说明

参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

mode有下列几种形态字符稿激物串:

r

打开只读文件,该文件必须存在。

r+

打开可读写的文件,该文件必须存在。

rb+

读写打开一个二进制文件,只允许读写数据。

rt+

读写打开一个文本文件,允许读和写。

w

打开只写文件,若文件存在则文件键液长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+

打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a

以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件铅扮尾,即文件原先的内容会被保留。

a+

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

wb

只写打开或新建一个二进制文件;只允许写数据。

wb+

读写打开或建立一个二进制文件,允许读和写。

wt+

读写打开或着建立一个文本文件;允许读写。

at+

读写打开一个文本文件,允许读或在文本末追加数据。

ab+

读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b

字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在posix系统,包含linux都会忽略该字符。由fopen()所建立的新文件会具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)权限,此文件权限也会参考umask

值。

自己看吧

c语言文件把数据滑帆看作是睁扰一连串的字符(字节)。C语言文件是一个字符(字节)的序列,是一字符流或字节流,是一种流式文件。根据数据的组织形式,可分为文本文件和二进制文件。

文本文件又称为ASCII文件,每一个字节中存放一个ASCII代码,代表一个字符。例如,一个整数123,若用.ASCII文件存放,占3个字节的

存储

单元,1、2、3各用一个字节

存储

。而1、2、3的ASCII码分别为49、50、51,故123用ASCII文件存信早雹放时,存放形式为001100010011001000110011。

二进制文件是直接用数据的二进制形式存放。例如,对整数123,二进制为0000000001111011,用二进制文件存放,需2个字节,存放形式为0000000001111011。

使用ASCII码文件,一个字节代表一个字符,便于对字符一一处理和输出,但占用较多的存储空间,并且要花费转换时间(ASCII码与二进制之间的转换)。使用二进制文件,

在内存中的数据形式与输出到外部文件中的数据形式完全一致,可以克服ASCII文件的缺点,但不直观,一个字节并不对应一个字符或一个数,不能直接输出字符形式。一般中间数据用二进制文件保存,输入输出使用ASCII文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8213719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存