printf, fprintf, sprintf, vsprintf, snprintf, vsnprintf之间的用法和区别
1、printf是打印格式化字符串,返回值是成功打印的字符数;
int printf(const char *format, ...);
2、fprintf是将格式化数据写入到指定文件流中;
int fprintf(FILE *stream, const char *format, ...);
3、sprintf是将格式化的数据写入到指定字符串;
int sprintf(char *str, const char *format, ...);
4、vsprintf与sprintf类似,不同之处在于它使用可变参数列表(va_list)来传递参数,而不是通过参数列表中的省略号...来传递。
int vsprintf (char * str, const char * format, va_list arg);
5、snprintf与sprintf类似,但在此基础上加入了写入最大字符数目n的限制,可以防止缓冲区溢出的安全漏洞,更加安全。
int snprintf(char *str, size_t size, const char *format, ...);
6、vsnprint也是与vsprintf类似,在其基础上加入了下入最大字符数目n的限制,更加安全。函数的返回值是实际尝试写入的字符数(不包括结尾的空字符),如果未能完全写入,则返回值等于n。
int vsnprintf (char * s, size_t n, const char * format, va_list args);
本文作者:FreeCheng
本文链接:https://www.cnblogs.com/freecheng/p/17913763.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!