【语言-C++】CString 转换代码

来源:互联网 发布:淘宝上怎么货到付款 编辑:程序博客网 时间:2024/06/03 13:40

CStringConversion.h

#pragma once#include "afx.h"#include <string>using namespace std;//define #define ZERO_FLOAT0.000002//缩进两个Tab#define DefaultIndent 2namespace CStringCon{CStringConCString(float value);CStringConCString(double value);CStringConCString(int value);CStringConCStringChar(int value);CStringConCString(byte value);CStringConCString(long value);CString ConCString(DWORD value);CString ConCString(WORD value);CStringConCString(const char*pStr);CStringConCString(char*pStr);CStringConCString(const string& src);CStringConCStringTabNumber(int level = DefaultIndent);CStringConCStringScoreCap(float value);void Sample();};

CStringConversion.cpp

#include "StdAfx.h"#include "CStringConversion.h"//CStringConversionnamespace CStringCon{CString ConCStringTabNumber(int level){CString strTab = _T("");for (int i = 0; i < level; i++){strTab += _T("\t");//;/_T("\t");}return strTab;}CString ConCString(DWORD value){CString caption;caption.Format(_T("%u"),value);return caption;}CString ConCString( WORD value ){CString caption;caption.Format(_T("%u"),value);return caption;}CString ConCString( const char* pStr ){CString strResult = _T("");#ifdef _UNICODEUSES_CONVERSION;strResult.Format(_T("%s"), A2W(pStr));#elsestrResult.Format(_T("%s"), (pStr));#endifreturn strResult;}CString ConCString(int value){CString caption;caption.Format(_T("%d"),value);return caption;}CStringConCString(char*pStr){CString strResult = _T("");#ifdef _UNICODEUSES_CONVERSION;strResult.Format(_T("%s"), A2W(pStr));#elsestrResult.Format(_T("%s"), (pStr));#endifreturn strResult;}CStringConCString(const string& src){const char* pStr = src.c_str();CString strResult = _T("");#ifdef _UNICODEUSES_CONVERSION;strResult.Format(_T("%s"), A2W(pStr));#elsestrResult.Format(_T("%s"), (pStr));#endifreturn strResult;}CString ConCStringScoreCap(float value){if(value < -ZERO_FLOAT) {if(value < -1 - ZERO_FLOAT)return _T("incomplete");elsereturn _T(" ");}float tempvalue  = (value + 0.5f);float tempvalue1 = (value * 10.0f  +0.5f) / 10.0f;float tempvalue2 = (value * 100.0f  +0.5f) / 100.0f;float tempvalue3 = (value * 1000.0f +0.5f) / 1000.0f;CString caption = _T("");if(fabs(tempvalue - value) < ZERO_FLOAT){caption.Format(_T("%d"),(int)value);}else if(fabs(tempvalue1 - value) < ZERO_FLOAT){caption.Format(_T("%.1f"),value + ZERO_FLOAT);}else if(fabs(tempvalue2 - value) < ZERO_FLOAT){caption.Format(_T("%.2f"),value + ZERO_FLOAT);}else{caption.Format(_T("%f"),value + ZERO_FLOAT );}return caption;}CString ConCString(double value){return ConCString((float)value);}CString ConCString(float value){//先这样,以后再解决//int nValue = (value * 100000 + 0.5);//value = nValue / 100000.0f;//value = -0.6999999f;BOOL bNegtive = (value < -ZERO_FLOAT);if(bNegtive == TRUE)value = - value;float tempvalue = (value + 0.5f);float tempvalue1 = (value * 10.0f  +0.5f) / 10.0f;float tempvalue2 = (value * 100.0f  +0.5f) / 100.0f;float tempvalue3 = (value * 1000.0f +0.5f) / 1000.0f;CString caption =_T("");if(fabs(tempvalue - value) < ZERO_FLOAT){caption.Format(_T("%d"),(int)value);}else if(fabs(tempvalue1 - value) < ZERO_FLOAT){caption.Format(_T("%.1f"),value + ZERO_FLOAT);}else if(fabs(tempvalue2 - value) < ZERO_FLOAT){caption.Format(_T("%.2f"),value + ZERO_FLOAT);}else if(fabs(tempvalue3 - value) < ZERO_FLOAT){caption.Format(_T("%.3f"),value + ZERO_FLOAT);}else{caption.Format(_T("%f"),value);}if(bNegtive == TRUE)caption = _T("-") + caption;return caption;}CString ConCString( long value ){CString str;str.Format(_T("%ld"),(int)value);return str;}CString ConCString( byte value ){CString str;str.Format(_T("0x%x"),value);return str;}CString ConCStringChar( int value ){CString str;str.Format(_T("%c"),value);return str;}void Sample(){CString tmp;tmp = ConCString(1.0f);OutputDebugString(tmp + L"\n");tmp = ConCString(-6.999999);OutputDebugString(tmp + L"\n");tmp = ConCString(0x0C8E);OutputDebugString(tmp + L"\n");tmp = ConCString(0x7FFFFFFF);OutputDebugString(tmp + L"\n");tmp = ConCString("少莫千华");OutputDebugString(tmp + L"\n");tmp = ConCString(19900823);OutputDebugString(tmp + L"\n");tmp = ConCString(19900823l);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(8482);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(8481);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(8451);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(8480);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(8457);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(8471);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(169);OutputDebugString(tmp + L"\n");tmp = ConCStringChar(174);OutputDebugString(tmp + L"\n");for (int i = 13184;i<=13277 ;i++)tmp = ConCStringChar(i);OutputDebugString(tmp + L"\n");tmp = ConCStringTabNumber(10);OutputDebugString(tmp + L"开始\n");tmp = ConCStringScoreCap(-100.0f);OutputDebugString(tmp + L"\n");tmp = ConCStringScoreCap(99.56f);OutputDebugString(tmp + L"\n");}};



0 0
原创粉丝点击