snprintf()函数的格式跟printf差不多一样,是在c里面用的函数,包含在 #include <stdio.h>头文件中。
但snprintf()函数并不是标准c/c++中规定的函数,所以在许多编译器中,厂商提供了其相应的实现的版本。在gcc中,该函数名称就snprintf(),而在VS中称为_snprintf。 所以在需要使用snprintf()时改成_snprintf就可以了,或则在预编译处加入:
#if _MSC_VER
#define snprintf _snprintf
#endif
二、返回值 ( Return value)
即如果成功,返回打印字符的个数,不包含结束字符串打印的'/0'。
函数snprintf() 和vsnprintf() 不能写入超过第二个参数定义的size bytes(包括字符串结束符'\0')到str,如果输出因为这个限制被截断,得到的返回值是打印到str的字符串个数(不包括字符串结束符'\0')。如果有足够buffer空间可用,这个字符串会一直打印显示,直到最后字符串最后。
如果遇到输出错误,会返回一个负值(a negative value)。
三、关联func
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
//头文件位于stdarg.h中
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);
这是一系列带V开头的打印函数