⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kstring.cpp

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 CPP
字号:
#include "kstring.h"#include <stdio.h>  #include <stdarg.h>QString& operator<<( QString& _str, short _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, ushort _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, int _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, uint _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, long _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, ulong _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, float _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, double _v ){    QString tmp;    tmp.setNum( _v );    _str += tmp.data();    return _str;}QString& operator<<( QString& _str, const char* _v ){    _str += _v;    return _str;}void ksprintf(QString *str, const char *fmt, ...){    va_list ap;    va_start( ap, fmt );    int i = 0;    int len = 255 + strlen(fmt); // default is the same as in QString::sprintf    int dummy; // this ugly hack is just to avoid warnings    while (fmt[i+1]) {	if (fmt[i] == '%' && fmt[i+1] != '%' ) { // argument	    if (fmt[i+1] == 's') {		const char *str = va_arg( ap, const char*);		len += strlen(str);	    } else		dummy = va_arg (ap, int); // take it out of the arg list	} else // jump over "%%"	    if (fmt[i] == '%' && fmt[i+1] == '%') i++;	i++;     }    va_end( ap); // oh god, what I hope, that restarting is portable    char *tmp_data = new char[len]; // make enough space    va_start( ap, fmt ); // the rest does the libc for us    vsprintf( tmp_data, fmt, ap );    va_end( ap );    *str = tmp_data; // makes deep copy, that is also resized        delete [] tmp_data; // clear the heap}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -