您的位置:首页 > 其它

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

2016-05-25 18:38 453 查看


程序的输出如上图;

输出相关的代码如下;

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 *。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息