cpp如何快速安全地将文件读入字符串string或字符数组vector<string>的方法
2012-03-11 08:54
1021 查看
就不多解释了,自己看吧
// ----------------------------------------------------------------------------- // 功能强大而简单的读写文件的FileRead函数 // Wu Xuping 2012-03-10 // 测试环境: // C++ builder 2010 // MinGW 4.5.1 windows // 使用很简单,看看最后附上的测试代码即可 // FileRead.hpp一定要保存为UTF-8的格式,因为这是MinGW的默认格式 // ----------------------------------------------------------------------------- #ifndef FileRead_H #define FileRead_H // -------------------- #include <iostream> #include <fstream> #include <vector> #include <string> using namespace std; // ============================================================================= // FileRead::将文件读入字符串数组中 // ============================================================================= void FileRead(string FileName, vector<string>&FileStringVector) { // 这个函数是基于流的方式,速度也比较快 if (FileStringVector.size() > 0) { FileStringVector.clear(); } ifstream fin(FileName.c_str()); if (!fin.bad()) { string sLine; // 行字符串 while (getline(fin, sLine)) { FileStringVector.push_back(sLine); } } fin.close(); }; // ============================================================================= // FileRead::将文件一次性读入读入字符串中 // ============================================================================= void FileRead(string FileName, string &FileString) { FileString = ""; char * buffer; // 使用文件流 ifstream ifs; ifs.open(FileName.c_str(), ios::binary); // 测试文件中字符数目 ifs.seekg(0, ios::end); long length = ifs.tellg(); ifs.seekg(0, ios::beg); // 分配内存 buffer = new char[length]; // 读文件 ifs.read(buffer, length); // 复制给FileString FileString = buffer; ifs.close(); // 一定要释放内存 delete[]buffer; }; // ------------------------------------------------------------------------------ #endif
相关文章推荐
- java 后台使用gson 将json字符串转换为List<Map<String,object>> 数组
- 为什么operator>>(istream&, string&)能够安全地读入长度未知的字符串?
- <Java>使用String读取文件名称获取得定位置的字符串
- 为什么operator>>(istream&, string&)能够安全地读入长度未知的字符串?
- 用string.Join与List<T>或者与string数组转换为字符串
- C语言 给字符数组赋值的方法<转>
- 从零开始学_JavaScript_系列(15)——js系列<4>(数值、字符串、对象、数组、函数、日期的基本方法)
- vector<char> 容器初始化 string 对象 两种方法
- 为什么operator>>(istream&, string&)能够安全地读入长度未知的字符串?
- C++primer习题3.14 vector<string>读写字符
- C# 重新对字符数组 List<string>中进行冒泡排序,字符多的在前
- vector<string>字符串容器介绍
- <仅是自己做笔记。。。系列15>实现一个挺高级的字符匹配算法: 给一串很长字符串,要求找到符合要求的字符串,例如目的串:123 1******3***2 ,12*****3这些都要找出来
- Java中char数组(字符数组)与字符串String类型的转换方法
- 【编程之法】如何最快的判断出短字符串b中的所有字符是否都在长字符串a中?编写函数bool StringContain(string&b,string&a)实现此功能。
- <opencv学习 1>图像文件的读入与显示
- 第四周(项目四扩展2)——数组做数据成员<读取文件>
- vector<pair<int,int> >的插入排序,字符串中子字符串个数查找
- 第16周 项目2-去除字符串str1中的特定字符(空格),结果仍保存在原字符串中<指针做参数>
- js数租,对象, 数组,字符串,函数,变量,int与String 型转化,String 转化为js 中内部代码,编码格式转化,<a>标签的死链接