C++打开文件函数

C++打开文件函数,第1张

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功能,打开窗口。

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

原文地址: http://outofmemory.cn/langs/11676057.html

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

发表评论

登录后才能评论

评论列表(0条)

保存