常用代码杂记

  输出中文

	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

基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值