C++ 读取txt文本
发布日期:2021-06-21 03:03:07 浏览次数:5 分类:技术文章

本文共 1584 字,大约阅读时间需要 5 分钟。

头文件

#include 
using namespace std;class CDictionary{public: CDictionary(); ~CDictionary(); // 读取数据文件 bool Load(string path); // 获取下一个文本 bool Next(string& text); // 是否读完 bool IsEnd(); // 关闭文件 void Close();private: // 确保全路径 void EnsureFullPath(string& path);private: FILE* m_fp; // 文件指针 bool m_bEnd; // 是否读到结尾};
cpp

#include "TextRead.h"#define MAX_PATH          260CDictionary::CDictionary(): m_fp(NULL), m_bEnd(false){}CDictionary::~CDictionary(){	Close();}// 读取数据文件bool CDictionary::Load(string path){	Close();	//EnsureFullPath(path);	m_fp = fopen(path.c_str(), "r");	if (m_fp == NULL)	{		return false;	}	return true;}// 获取下一个termbool CDictionary::Next(string& entry){	if (m_fp == NULL || m_bEnd)	{		return false;	}	char buffer[1024] = {0};	char* pResult = fgets(buffer, _countof(buffer) - 1, m_fp);	if (pResult == NULL)	{		// 读到末尾		m_bEnd = true;		return false;	}	// 去掉'/n'	if (buffer[strlen(buffer) - 1] == '\n')	{		buffer[strlen(buffer) - 1] = 0;	}	entry = buffer;	return true;}// 是否读完bool CDictionary::IsEnd(){	return m_bEnd;}// 关闭文件void CDictionary::Close(){	if (m_fp != NULL)	{		fclose(m_fp);		m_fp = NULL;	}	m_bEnd = false;}// 确保全路径void CDictionary::EnsureFullPath(string& path){	// 判断是否是全路径	//if (path.find(':') != -1)	//{	//	return;	//}	 获取当前路径	//char buffer[MAX_PATH] = {0};	//HMODULE hModule = GetModuleHandle(MODULE_FILE);	//GetModuleFileName(hModule, buffer, _countof(buffer) - 1);	//string module_file = buffer;	//string module_dir = module_file.substr(0, module_file.find_last_of('\\'));	//string full_path = module_dir + "/" + path;	//path.swap(full_path);}

转载地址:https://blog.csdn.net/KWSY2008/article/details/11534919 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:用python为网站画一张用户分布地图
下一篇:C++ 把对象写入到文件中并按位置读取

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月02日 03时17分43秒