wsprintf对应的字符串是宽字符型wchar_t,即一个字符占用2个字节的内存空间. sprintf对应的字符串是字符类型为char,几一个字符占用1个字节的内存空间. PS:sprintf是用于对ASCII码的127个字符进行操作,wsprintf是对UNICODE的多语言字符进行操作.比如中文,就要用wsprintf 那么我用atof函数把一个浮点型整数字符串转换为浮点数,然后再用wsprintf函数把这个浮点数转换为字符串到数组中。然后比较转化前和转化后的字符窜,不相等,但是用sprintf转化却相等,这是为什么?知道的告诉下。谢谢
第1个回答 2011-10-19
你所创建的工程是否是UNICODE工程?
我看你使用atof转换,说明转换之前的字符串是ANSI字符串,wsprintf是自适应的函数,它在非UNICODE环境下,会把字符串转换成ANSI字符串,而在UNICODE环境下会把字符串转换成UNICODE字符串,肯定会不相等了。
我看你使用atof转换,说明转换之前的字符串是ANSI字符串,wsprintf是自适应的函数,它在非UNICODE环境下,会把字符串转换成ANSI字符串,而在UNICODE环境下会把字符串转换成UNICODE字符串,肯定会不相等了。
第2个回答 2011-10-19
你对ANSI和UNICODE还有着一些误区
ANSI的字符不一定占用1个字节,ANSI是可以表示中文字符的
UNICODE是每个字符一定占用2个字节
sprintf是ANSI版本的函数,所以sprintf也可以对多语言字符进行操作
atof函数把一个浮点型整数字符串转换为浮点数,你这个浮点型整数字符串是wchar_t的么??
atof是ANSI版本的函数本回答被提问者采纳
ANSI的字符不一定占用1个字节,ANSI是可以表示中文字符的
UNICODE是每个字符一定占用2个字节
sprintf是ANSI版本的函数,所以sprintf也可以对多语言字符进行操作
atof函数把一个浮点型整数字符串转换为浮点数,你这个浮点型整数字符串是wchar_t的么??
atof是ANSI版本的函数本回答被提问者采纳