C++常用文件流操作

本文详细介绍了C++中文件流的使用,包括fstream类型、open()函数、打开方式、文件属性,展示了文本文件的读写操作、状态标志符验证、流指针管理和二进制文件的特性和缓冲同步。通过实例演示了如何统计行数、读取特定行及读取数据到数组。
摘要由CSDN通过智能技术生成

1.打开文件

1.1 fstream类型

#include <fstream>  
ofstream         //文件写操作 内存写入存储设备   
ifstream         //文件读操作,存储设备读区到内存中  
fstream          //读写操作,对打开的文件可进行读写操作

1.2 open()的函数原型

void open ( const char * filename,  
            ios_base::openmode mode = ios_base::in | ios_base::out );

void open(const wchar_t *_Filename,
        ios_base::openmode mode= ios_base::in | ios_base::out,
        int prot = ios_base::_Openprot)
参数 含义
filename 操作文件名
mode 打开文件的方式
prot 打开文件的属性

1.3 打开方式

打开文件的方式在ios类(所以流式I/O的基类)中定义,有如下几种常用方式:

参数 含义
ios::in 为输入(读)而打开文件
ios::out 为输出(写)而打开文件
ios::ate 初始位置:文件尾
ios::app 所有输出附加在文件末尾
ios::trunc 如果文件已存在则先删除该文件再重新创建
ios::binary 二进制方式

1.4 打开文件的属性

打开文件的属性同样在ios类中也有定义:

参数 含义
0 普通文件,打开操作
1 只读文件
2 隐含文件
4 系统文件

1.5 示例代码

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
int main()
{
   
    ofstream inFile;
    /*ios::trunc表示在打开文件前将文件清空,由于是写入,文件不存在则创建*/
    inFile.open("inFile.txt",ios::trunc);
 
    int i;
    char a='a';
    for(i=1;i<=26;i++)//将26个数字及英文字母写入文件
    {
   
        inFile<<setw(2)<<i<<"\t"<<a<<"\n";
        a++;
    }
    inFile.close();//关闭文件
}

2.文本文件的读写

2.1 写文件示例

// writing on a text file  
 #include <fstream.h>  
 
 int main () 
 {
     
     ofstream out(”out.txt”);  
     if (out.is_open())   
    {
     
         out << ”This is a line.\n”;  
         out << ”This is another line.\n”;  
         out.close();  
     }  
     return 0;  
 }  
//结果: 在out.txt中写入:  
This is a line.  
This is another line   

2.2 读文件示例

// reading a text file  
   #include <iostream.h>  
   #include <fstream.h>  
   #include <stdlib.h>  
     
   int main () 
   {
     
       char buffer[256];  
       ifstream in(”test.txt”);  
       if (! in.is_open())  
       {
    
       cout << ”Error opening file”; 
       exit (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值