您的位置:首页 > 编程语言 > C语言/C++

转载:c++文件打开和关闭

2010-03-26 16:51 381 查看
一般使用fstream 类中所定义的成员函数 open( )和 close( )。
fstream outfile; 定义一个fstream类的对象
outfile.open("f1.txt", ios::out);
或者 fstream outfile("f1.txt", ios::out);
in 以输入(读)方式打开文件
out 以输出(写)方式打开文件
app 以输出追加方式打开文件
ate 文件打开时,文件指针位于文件尾
trune 如果文件存在,将其长度截断为0,并清除原有
内容;如果文件不存在,则创建新文件
Binary 以二进制方式打开文件,缺省时为文本方式
nocreate 打开一个已有文件,如该文件不存在,打开失败
noreplace 如果文件存在,除非设置ios::ate或ios::app,否则打
开操作失败
ios::in|ios::out 以读和写的方式打开文件
ios::out|ios::binary 以二进制写方式打开文件
ios::in|ios::binary 以二进制读方式打开文件
未指定binary方式时,文件都以文本方式打开,若指定了 binary方式,则文件以二进制方式打开.

打开文件的另一种方法 利用fstream的专门读或写的子类
ofstream outfile("f1.txt", ios::out); 写
ifstream istrm("f2.txt"); 读
读写完不要忘了关闭文件
infile.close( );
//
例如:
MFC主要读写文件的类是CFile,而CStdioFile类是派生自CFile类的,主要增加了一个按行的方式读取/写入文件每行字符串的功能!别的地方没咋研究!

//CFile读取所有文件到缓冲区:
CFile file;
char buffer[1024];
if(!file.Open("c://aaa.txt",CFile::modeRead))return; //打开aaa这个文件,打开形式为读取
file.Read(buffer,1024); //将文件的内容从开始,读1024到缓冲区(如果想读取不同地方的数据则需要设置游标函数Seek,SeekToBegin,SeekToEnd..)
file.Close();

//CFile写内容到文件
CFile file;
char buffer[1024] = "在此添加要写入文件的字符串!";
if(!file.Open("c://aaa.txt",CFile::Create | CFile::Write))return; //打开aaa这个文件,打开形式为(无此文件则新建)写入
file.Write(buffer,strlen(buffer));
file.Close();

//CStdioFile类的例子:
CStdioFile file;
CString str; //StdioFile可以直接使用字符串类CString的类型
if(!file.Open("c://aaa.txt",CFile::modeRead))return; //打开aaa这个文件,打开形式为读取
file.ReadString(str); //读一行内容到str字符串,注意此时文件的游标将自动设置到下一行的开头位置,所以如果想读下一行还是用file.ReadString(str);
file.Close();

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lzhw1985/archive/2008/07/24/2704223.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: