使用C++对小文本文件进行整体读写的两个函数

简介

之前使用C#,可以使用File.ReadAll()和File.WriteAll()方法,方便对小文本文件进行整体读写。在C++中没有相关的函数,于是编写了两个相应函数来实现相同的功能。

实现代码

#include 
#include 
#include 
#include 

using namespace std;

// 将文本内容追加至文件
static void writeAllText(const string &content, const string &filename) {
    ofstream out;
    out.open(filename, ios::out | ios::trunc);
    if (out.is_open())
        out << content;
    out.close();
}

// 从文件中读取文件内容。
vector<string> &readAllLines(const string &filename) {
    vector<string>* lines = new vector<string>();
    ifstream file;
    file.open(filename.c_str(), ios::in);
    if (file.is_open()) {
        string strLine;
        while (!file.eof()) {
            getline(file, strLine);
            lines->push_back(strLine);
        }
    }
    file.close();
    cout << lines->size() << endl;
    return *lines;
}

补充

以上内容不支持中文,需要支持中文的话,只需要引用 wstring 即可,代码如下所示:

#include 
#include 
#include  
#include  
#include 

using namespace std;

// 支持中文。 
wstring wreadall(const string& filename){
    wifstream in(filename);
    wostringstream tmp;
    tmp << in.rdbuf();
    // auto s = in.rdbuf();
    in.close();
    wstring str = tmp.str();
    tmp.clear();
    return str;
}

你可能感兴趣的:(C/C++,文本文件读写)