OutputDebugString函数
OutputDebugString(L"字符串");(VS中,#define OutputDebugString OutputDebugStringW )
OutputDebugStringW(L"字符串");
OutputDebugStringA(“字符串”);
sprintf、swprintf、wsprintf、sprintf_s、snprintf、asprintf、vsprintf函数
sprintf、swprintf函数:将格式化数据写入字符串缓冲区中
int sprintf(char* buffer,const char* format [,argument] … );返回值为存储在buffer中的字节(bytes)的数目,不包含终止空字符
int swprintf(wchar_t buffer,const wchar_t format [,**argument] … );返回值为存储在buffer中的宽字符的数目,不包含终止空宽字符
buffer-指向将要写入的字符串的缓冲区
format-格式控制字符串
[argument]…-可选参数,可以是任何类型的数据(使用此函数可将数字转为字符串)
格式化规定符:
- %d 格式化为十进制有符号整数输出到缓冲区
- %u 格式化为十进制无符号整数输出到缓冲区
- %f 格式化为浮点数输出到缓冲区
- %s 格式化为字符串输出到缓冲区
- %c 格式化为单个字符输出到缓冲区
- %e 格式化为指数形式的浮点数输出到缓冲区
- %x 格式化为无符号以十六进制表示的整数(a-f小写输出)输出到缓冲区
- %X 格式化为无符号以十六进制表示的整数(a-f大写输出)输出到缓冲区
- %0 格式化为无符号以八进制表示的整数输出到缓冲区
- %g 格式化为自动选择合适的表示法输出到缓冲区
- 说明:
可以在"%“和字母之间插进数字表示最大场宽。例如: %3d 表示输出3位整型数,不够3位右对齐。%9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。%8s 表示输出8个字符的字符串,不够8个字符右对齐。如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。另外,若想在输出值前加一些0,就应在场宽项前加个0。例如:
%04d 表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。如果用浮点数表示字符或整型量的输出格式,小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9,则第9个字符以后的内容将被删除。可以在”%“和字母之间加小写字母l,表示输出的是长型数。例如: %ld 表示输出long整数,%lf 表示输出double浮点数。 可以控制输出左对齐或右对齐,即在”%“和字母之间加入一个”-" 号可说明输出为左对齐,否则为右对齐。例如: %-7d 表示输出7位整数左对齐。%-10s 表示输出10个字符左对齐。
wsprintf函数:将一系列的字符和数值输入到字符串缓冲区。wsprintf其实分为 wsprintfA 和 wsprintfW。VS中,#define wsprintf wsprintfW
int __cdecl wsprintf(LPWSTR lpOut,LPCWSTR lpFmt,…);
wsprintf的输出缓冲区lpOut有 1024 字符限制,而且不支持浮点数的输入输出。
swprintf(FPSString, L"%f", FPS); //正确
wsprintf(FPSString, L"%f", FPS); //错误("%f&#