由于WINCE不支持 _vscwprintf() 所以在使用字符串时候溢出是个大问题,当然如果可以忍受 stringstream的话,这个就不是问题了,对于习惯使用sprintf或者MFC中CString的Format的人们来说无疑是很郁闷的;
stringstream格式化输出可以采用如下操作
ostringstream ostr;
ostr << "sdfsaf" << "afsa";
string sp = ostr.str();
下面介绍一下stringsprintf, stringsprintf是参考他人的劳动成果所作的修改,主要改动就是改成了模板;
////////////////////////////////////////////stringsprintf.h//////////////////////////////////////////////
#include <cstdarg>
#include <sstream>
#include <string>
using namespace std;
template<typename _U>
basic_string<_U, char_traits<_U>, allocator<_U> > & stringprintf( basic_string<_U, char_traits<_U>, allocator<_U> > &s, const _U *fmt, ... )
{
s.clear();
//assert( s.empty() );
va_list ap;
va_start(ap, fmt);
const _U *next_c; // next character
while ( *fmt != _T('/0') )
{
switch ( *fmt )
{
case _T('%'):
{
next_c = fmt + 1;
switch ( *next_c )
{
case _T('/0'):
s += *fmt;
break;
case _T('%'):
s += _T('%');
++fmt;
break;
case _T('s'):
s += va_arg(ap, _U*);
++fmt;
break;
case _T('d'):
{
basic_ostringstream<_U, char_traits<_U>,allocator<_U> > oss;
oss << va_arg(ap, int);
s += oss.str();
++fmt;
break;
}
case _T('u'):
{
basic_ostringstream<_U, char_traits<_U>,allocator<_U> > oss;
oss << va_arg(ap, unsigned int);
s += oss.str();
++fmt;
break;
}
case _T('f'):
{
basic_ostringstream<_U, char_traits<_U>,allocator<_U> > oss;
oss << va_arg(ap, double);
s += oss.str();
++fmt;
break;
}
default:
assert( !_T("format unsupported.") );
break;
}
break;
}
default:
s += *fmt;
break;
}
++fmt;
}
va_end(ap);
return s;
}
分享到:
相关推荐
Android防止内存溢出浅析.zip
c/c++防止c/c++防止缓冲区溢出教程源代码 缓冲区溢出教程源代码
易语言源码易语言防止文件内存溢出源码.rar 易语言源码易语言防止文件内存溢出源码.rar 易语言源码易语言防止文件内存溢出源码.rar 易语言源码易语言防止文件内存溢出源码.rar 易语言源码易语言防止文件内存溢出...
缓冲区溢出攻击与防止技术缓冲区溢出攻击与防止技术缓冲区溢出攻击与防止技术
防止内存溢出浅析
android加载大图片的时候防止内存溢出的分析
易语言防止文件内存溢出源码,防止文件内存溢出,读入子程序
Linux上使用包裹函数防止堆栈溢出攻击的研究.pdf
Android防止内存溢出浅析
适合用来预防老式的asp语言开发的网站,用来预防网站溢出攻击。
我的世界1.8.9功能=========
java 使用 poi 解析导入大数据量(几万数据量+)时,报出OOM。这是使用POI 第二种处理方法,解决大数据量导入内存溢出问题,并提升效率
我们不可能让服务器每一小时更新一次,更新了也要重启那样对服务器是相当不安全,我们可以把CMD锁或是把CMD封掉,但然禁用命令也是一个好办法,
易语言防止文件内存溢出源码。@易语言源码分享站。
内存溢出配置,内存溢出配置内存溢出配置内存溢出配置
基于Android防止内存溢出浅析
Android应用源码之防止内存溢出浅析.zip项目安卓应用源码下载Android应用源码之防止内存溢出浅析.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
有的时候,我们需要一次查询很多的数据,或者是说每次查询的数据量都很大,都有可能早晨内存溢出的情况,所以我们今天分别针对三个数据库来探讨如何避免这一问题。
JAVA内存溢出问题总结
异步下载图片,可用于listView 可以有效避免内存溢出