C++按行读取文本文件,并通过分隔符取值
2016-11-26 22:20
330 查看
现需要在C++中读取文本文件txt,txt文件的编码格式为:UTF-8 无BOM格式编码!C++环境的字符集为:使用多字节字符集!
读取代码如下:
读取代码如下:
#include #include #include string UTF8ToGB(const char* str) { string result; WCHAR *strSrc; LPSTR szRes; //获得临时变量的大小 int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); strSrc = new WCHAR[i + 1]; MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i); //获得临时变量的大小 i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL); szRes = new CHAR[i + 1]; WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL); result = szRes; delete[]strSrc; delete[]szRes; return result; } vector SplitCString(CString strSource, CString ch) { vector vecString; int iPos = 0; CString strTmp; strTmp = strSource.Tokenize(ch, iPos); while (strTmp.Trim() != _T("")) { vecString.push_back(strTmp); strTmp = strSource.Tokenize(ch, iPos); } return vecString; } vector ReadTxtFile() { char txt[200]; ifstream infile; infile.open("XXX.txt"); if (!infile.is_open()) { //std::cout << "txt文件打开失败" << endl; } vector vcs; while (!infile.eof()) { infile.getline(txt, 100); string msg = UTF8ToGB(txt); CString cstr(msg.c_str()); vcs = SplitCString(cstr, ","); vector::iterator ita; //声明一个迭代器 int i = 0; for (ita = vcs.begin(), i = 0; ita != vcs.end(); i++, ita++)//v1.begin()指向v1的第一个元素,v1.end()指向最后元素的下一位置 { cout << "vcs中的" << i << "值:" << vcs[i] << endl ; } //std::cout << msg << endl; } infile.close(); return vcs; }
相关文章推荐
- 通过程序 VB.Net 或 C# 读取文本文件行数
- asp.net 读取一个文本文件,并输出到网页显示 通过 一般处理程序实现
- IO流文本文件读取方式二---通过字符数组进行读取
- 通过程序 VB.Net 或 C# 读取文本文件行数
- 如何读取和写入到文本文件中,通过使用 Visual C#
- 如何读取和写入到文本文件中,通过使用 Visual C#
- 在J2ME中读取各种格式的文本文件
- Java一次读取文本文件所有内容
- 通过mapreduce程序读取hdfs文件写入hbase
- System.IO负责处理文本文件(包括XML)的读取和写入
- matlab 基础 —— 文本文件读取
- MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)
- python读取浮点数和读取文本文件示例
- 【C#】用C#通过读取数据库方式读取CSV文件
- 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
- 通过C#从数据库中读取内容生成WORD文档
- VC和C++按行读取文本文件
- C# 通过form表单下载文本文件
- UNICODE环境下整行读取文本文件的方法
- VBA 读取文本文件