c++文件打开和关闭

一般使用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();
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值