常用代码杂记
2019-02-25 16:09:20来源:博客园 阅读 ()
输出中文
locale loc( "chs" ); wcout.imbue( loc ); wcout << GetExePath().GetBuffer() << endl;
编码转换
#pragma once #include <windows.h> #include <atlstr.h> #include <string> typedef std::basic_string<TCHAR, std::char_traits<TCHAR>,std::allocator<TCHAR> > tstring; std::string t2a(CString input) { USES_CONVERSION; return T2A(input); } std::string t2a(tstring input) { USES_CONVERSION; return T2A(input.c_str()); } CString a2t(std::string input) { USES_CONVERSION; return A2T(input.c_str()); } tstring a2t_2(std::string input) { USES_CONVERSION; return A2T(input.c_str()); } char* UnicodeToUtf8(const wchar_t* unicode) { int len; len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL); char *szUtf8 = (char*)malloc(len + 1); memset(szUtf8, 0, len + 1); WideCharToMultiByte(CP_UTF8, 0, unicode, -1, szUtf8, len, NULL, NULL); return szUtf8; } CString UTF82WCS(const char* szU8) { //预转换,得到所需空间的大小; int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0); //分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间 wchar_t* wszString = new wchar_t[wcsLen + 1]; //转换 ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen); //最后加上'\0' wszString[wcsLen] = '\0'; CString unicodeString(wszString); delete[] wszString; wszString = NULL; return unicodeString; }
读取文件
#pragma once #include <fstream> #include <sstream> #include <string> std::string GetFileContents(std::string filename) { std::ifstream ifs(filename.c_str()); if (ifs.good()) { std::stringstream ss; ss << ifs.rdbuf(); return ss.str(); } return ""; } std::string GetFileContents2(std::string filename) { std::ifstream ifs(filename.c_str()); if (ifs.good()) { std::string strBuffer((std::istreambuf_iterator<char>(ifs)),std::istreambuf_iterator<char>()); return strBuffer; } return ""; }
获取文件路径
#pragma once #include <atlstr.h> // 获取当前可执行文件的路径 CString GetExePath() { CString strCurPath; GetModuleFileName(NULL, strCurPath.GetBuffer(MAX_PATH), MAX_PATH); strCurPath.ReleaseBuffer(); return strCurPath.Left(strCurPath.ReverseFind(_T('\\'))); } // 获取当前可执行文件的文件名 CString GetExeName() { CString strCurPath; GetModuleFileName(NULL, strCurPath.GetBuffer(MAX_PATH), MAX_PATH); strCurPath.ReleaseBuffer(); return strCurPath.Mid(strCurPath.ReverseFind(_T('\\'))+1); }
原文链接:https://www.cnblogs.com/manongdashu/p/10413737.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:vector类型介绍
- opencv-12-高斯滤波-双边滤波(附C++代码实现) 2020-05-10
- C++ 存储持续性 2020-05-10
- Android P HIDL demo代码编写 (原创) 2020-05-07
- 前缀和 2020-05-04
- 纯虚函数与基类指针数组的运用 代码参考 2020-04-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash