C++学习之文件读取。

头文件#include <fstream>

类ifstream : 意思是input file stream(文件输入流)

类ofstream : 意思是output file stream (文件输出流)

类fstream : file stream (文件流)【几乎包含前面两种的操作】

创建一个文件输入流对象:

int main(){
    ifstream inFile("filename.txt");
    return 0;
}

/**或者*/

int main(){
    ifstream inFile;
    inFile.open("filename.txt");//里面可以加上参数("filename.txt", ios::in);
    return 0;
}

/**二者效果是等同的*/

对于fstream类

int main(){
    fstream ioFile;
    ioFile.open("filename.txt", ios::in|ios::out);//形式参数表的第二个参数可以省略,因为有默认参数

    return 0;
}

对于ofstream

        文本模式:

                outFile.open("example.txt", ios::out|ios::trunc);

                如果文件不存在则创建一个,如果文件存在则清空并打开;

如果要显示指定二进制文件模式

                outFile.open("example.txt", ios::binary);

检查是否打开成功

两种函数:

        fail();   打开失败则返回true, 否则返回false;

        is_open(); 打开成功返回true, 否则返回true;/**这个用的居多*/

使用方法:

#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;

int main(){
    istream inFile;
    inFile.open("file.txt");
    if(!inFile.is_open()){
        cerr << " wrong! " << endl;
        exit(EXIT_FAILURE);
    }
    ……
    
    return 0;
}

 关闭文件

        对象调用close函数;

       inFile.close();

字符流输入输出

        输入单个字符

        char ch

        inFile.get(ch);

        输出单个字符

        outFile.put(ch);

       

行输入输出

        getline(文件流对象,string contents);

块输入输出

        read 和 write 函数;(以二进制的方式读写文件)

                inFile.read(reinterpret_cast<char *> a, sizeof(a)); // 传入进去的内容一定要加上reinterpret_cast <char *> ()来转换成char类型的指针。

        这个用于输入和输出数组,对象成员之类的。

        例如:

int main(){
    int a[] = {1, 2, 3, 4};
    ofstream outFile;
    outFile.open("1.txt");
    outFile.write(reinterpret_cast<char*>(a), sizeof(a));
    outFile.close();
    return 0;
}

                

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值