首页 > 编程知识 正文

snprintf返回值,volue函数

时间:2023-05-03 06:36:01 阅读:169644 作者:4489

搬家,原地址: https://langzi 989.github.io/2018/01/01/c的snprintf和vsnprintf函数/

snprintf函数在开发过程中很常用,但其中存在一些需要注意的细节问题。 snprintf函数不是c的标准函数,因此不同的编译器的实现可能不同。 本文表明它基于GCC编译器。

1、snprintf函数1.1函数原型snprintf函数的作用是将格式化的数据写入字符串。 那个函数的原型是:

snprintf(char*buffer,int n,char* format,); 1.2参数说明用于存储buffer :格式化字符串的buffern :指定格式化字符串的大小,包括format :实际上需要存储格式化字符串而不是存储在buffer中的字符串

1.4请特别注意,函数原型的第二个参数包含的大小,返回值为所需大小,不包含。

例:

char buffer[256]; //返回值ret=13,buffer的内容为123456789 intret=snprintf (buffer,10,“%s”,“1234567890abc”); memset(buffer,0x0,sizeof ) (buffer ); //返回值ret=3,buffer的内容为123ret=snprintf(buffer,10,' %s ',' 123 ' ); 2、snprintf和vsnprintf snprintf和vsnprintf都是c语言的printf族函数的成员。 实际上,snprintf和vsnprintf的功能完全相同,但vsnprintf将snprintf的可变参数替换为av_list类型。 以下:

# include stdio.hint printf (const char * format, //输出到标准输出int fprintf (file * stream,const char* format,); //输出到文件intsprintf (char * buffer,const char* format,); //输出到字符串int snprintf (char * buffer,int n,const char* format,); //字符串# include stdarg.hint输出到vprintf (const char * format,va_list ap )//标准输出intvfprintf(file*stream,const char ) 输出到//文件intvsprintf(char*buffer,const char* format,va_list ap )//字符串输出到intvsprintf(char*buffer,int n,con ) //字符串2.1 va_list的输出可变参数va_list的获取方法由以下函数获取,并始终成对调用

va_start(va_listAP,last ); va_end(va_listAP ); 2.2简单地使用vsnprintf函数创建snprintf # include stdio.h # include stdarg.hint my _ snprintf (char * buffer,int size,const char * ) intret=vsnprintf(buffer,size,format,ap ); va_end(AP; 返回; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。