printf sprintf wsprintf fprintf 区别及注意点

来源:互联网 发布:网络老虎机mg出分技术 编辑:程序博客网 时间:2024/04/28 15:32

sprintf是用于对ASCII码的127个字符进行操作,wsprintf是对UNICODE的多语言字符进行操作.
如:
sprintf(buffer, "ascii");
wsprintf(buffer, L"unicode");

 

wsprintf对应的字符串是宽字符型wchar_t,即一个字符占用2个字节的内存空间.
sprintf对应的字符串是字符类型为char,几一个字符占用1个字节的内存空间.

 

见头文件中的定义:
#ifndef   _UNICODE   
#define   _stprintf       sprintf   
#else   
#define   _stprintf       wsprintf   
#endif

 

wsprintf   其实分为   wsprintfA   和   wsprintfW,前者对应   sprintf,后者对应   wsprintf。   
wsprintf   有   1024   字符限制,而且不支持浮点数(如.lf)。sprintf没有限制

由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf比

 

printf有用得多。所以本文着重介绍sprintf,有时也穿插着用用pritnf。

 

fprintf()
  按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了