Windows SDK程序的输出文字和格式控制(wsprintf、swprintf、Textout)

来源:互联网 发布:路桥专业淘宝拍照 编辑:程序博客网 时间:2024/06/10 07:20




程序的输出如上图;


输出相关的代码如下;

TCHAR szBuffer [40] ; TCHAR szHello[] = TEXT("Hello, C-Free!");int   iLength ;TextOut (hdc, 200, 20, "Hello, C-Free!", 14) ;TextOut (hdc, 200, 40, szHello, 14) ;iLength = wsprintf (szBuffer, TEXT ("The sum of %i and %i is %i"),           7, 8, 7 + 8) ;TextOut (hdc, 200, 60, szBuffer, iLength) ;float x = 1.2345f;iLength = wsprintf(szBuffer, TEXT ("%f"), x );TextOut (hdc, 200, 80, szBuffer, iLength) ;char c1="a";iLength = wsprintf(szBuffer, TEXT ("c1 is %c"), c1 );TextOut (hdc, 200, 100, szBuffer, iLength) ;TCHAR c2="b";iLength = wsprintf(szBuffer, TEXT ("c1 is %c"), c2 );TextOut (hdc, 200, 120, szBuffer, iLength) ;iLength = swprintf( szBuffer, 512, TEXT("x = %f"), x );TextOut (hdc, 200, 140, szBuffer, iLength) ;

首先是输出字符串;

然后输出整型;


wsprintf不支持浮点,会直接输出字符f;


单个字符大概不能格式化到字符数组中输出;


swprintf支持浮点;

最后一次的输出,对swprintf的调用存在一点问题,啥也没输出;


char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型。
CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。LPCSTR 相当于CONST CHAR * 和LPSTR 相当于CHAR *。


0 0