首页 > 编程笔记 > C++笔记 阅读:3

C++ fstream类读写文件(附带实例)

对文件进行操作时,最常见的就是读写文件。例如,使用程序查看文件内容时,首先要读取文件;修改文件内容时,需要向文件中写入数据。

C++ 中的文件流分为 3 类,即输入流、输出流和输入/输出流,相应地,必须将流声明为 ifstream、ofstream 和 fstream 类的对象:
ifstream ifile;    // 声明一个输入流
ofstream ofile;    // 声明一个输出流
fstream iofile;    // 声明一个输入/输出流
声明了流对象之后,可以使用 open() 函数打开文件。打开文件就是在流与文件之间建立一个连接。接下来讲解如何用 fstream 类读写文件。

fstream 类中常用的成员函数如下,其中,参数 c、str为 char 型,n 为 int 型:

函数/方法 描述
get(c) 从文件中读取一个字符。
getline(str, n, '\n') 从文件中读取字符并存入字符串 str 中,直到读取第 n-1 个字符或遇到 '\n' 时结束。
peek() 查找下一个字符,但不从文件中取出。
put(c) 将一个字符写入文件。
putback(c) 对输入流放回一个字符,但不保存。
eof 如果读取超过 eof,返回 true。
ignore(n) 跳过 n 个字符,参数为空时,表示跳过下一个字符。

【实例 1】创建一个文本文件 test.txt,并向此文件写入字符串,具体代码如下:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    fstream file("test.txt",ios::out);
    if(!file.fail())
    {
        cout << "start write " << endl;
        file << "https://";
        file << "c.biancheng.net";
        file << "/c/" << endl;
    }
    else
    {
        cout << "can not open" << endl;
        file.close();
        return 0;
    }
}
程序通过 fstream 类的构造函数打开文本文件 test.txt,然后向其中写入字符串“https://c.biancheng.net”。

前面介绍了如何写入文件信息,下面通过实例介绍如何读取文本文件的内容。

【实例 2】读取实例 1 中的 test.txt。代码如下:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    fstream file("test.txt",ios::in);
    if(!file.fail())
    {
        while(!file.eof())
        {
            char buf[128];
            file.getline(buf,128);
            if(file.tellg()>0)
            {
                cout << buf;
                cout << endl;
            }
        }
    }
    else
        cout << "can not open" << endl;
    file.close();
    return 0;
}
程序的执行结果为:

https://c.biancheng.net/c/

相关文章