C++通过以下几个类支持文件的输入输出
(1) ofstream:写 *** 作,输出文件类;
(2) ifstream:读 *** 作,输入文件类;
(3) fstream:可同时读写的文件类。
1 open函数:打开文件
函数原型:void open(const charfilename,int mode,int access);
参数说明:filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:
ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary:以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: 文件以输入方式打开
ios::out: 文件以输出方式打开
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc: 如果文件存在,把文件长度设为0
可以用“或”把以上属性连接起来,如ios::out|ios::binary
打开文件的属性取值是:
0:普通文件,打开访问
1:只读文件
2:隐含文件
4:系统文件
例如:以二进制输入方式打开文件c:\configsys
fstreamfile1;
file1open("c:\\configsys",ios::binary|ios::in,0);
ofstream file;
fileopen ("examplebin", ios::out |ios::app | ios::binary);
2 close函数
函数原型:void close()
3 二进制文件(Binary files)
在二进制文件中,使用<< 和>>,以及函数(如getline)来 *** 作符输入和输出数据,没有什么实际意义,虽然它们是符合语法的。
文件流包括两个为顺序读写数据特殊设计的成员函数:write 和 read。第一个函数 (write) 是ostream 的一个成员函数,都是被ofstream所继承。而read 是istream 的一个成员函数,被ifstream 所继承。类 fstream 的对象同时拥有这两个函数。它们的原型是:
write ( char buffer, streamsize size );
read ( char buffer, streamsize size );
这里 buffer 是一块内存的地址,用来存储或读出数据。参数size 是一个整数值,表示要从缓存(buffer)中读出或写入的字符数。
出现这个问题的原因有不少:
1 在引包是引用了不匹配的包版本
2 开发环境和运行环境的不一致
3 更新程序的时候,由于函数更新输出的数据格式跟原来的不一致,从而导致这个问题。
windows下的文件 *** 作,一般都用C语言的文件函数,其中文件打开函数fopen
fopen函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式)
其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和 *** 作要求。“文件名”是字符串常量或字符串数组。例如:
FILE fp;
fp=("file a","r");
其意义是在当前目录下打开文件file a, 只允许进行“读” *** 作,并使fp指向该文件。
又如:
FILE fphzk
fphzk=("c:\\hzk16',"rb")
其意义是打开C驱动器磁盘的根目录下的文件hzk16, 这是一个二进制文件,只允许按二进制方式进行读 *** 作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 希望在文件内追加内容,打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
系统调用函数。
open是UNIX系统(包括LINUX、Mac等)的系统调用函数,区别于C语言库函数fopen对于open函数来说,第三个参数仅当创建新文件时(即使用了O_CREAT时)才使用,用于指定文件的访问权限位(accesspermissionbits)。
open是多种语言环境的一种函数,LINUX中open函数作用打开和创建文件,PB程序语言中open功能,打开窗口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)