C/C++中sprintf的用法
来源:互联网 发布:mac自动登录 灰色 编辑:程序博客网 时间:2024/05/07 17:52
原型:int sprintf( char *buffer, const char *format [, argument] … ); 功能:把格式化的数据写入buffer容器中(字符串),返回buffer的长度。这里s为一个buffer,类型为字符数组名或者字符指针(需要初始化)。
sprintf(s, "%d", 123); //产生"123"
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"(123前5个字符宽,4567前4个字符宽)
sprintf(s,"%m.ns",cp);//这里m为m个字符宽,如果输出的多于m个字符,则按实际需要分配宽度,如果少于m个字符则在左边(-m.n时在右边,此时是左对齐)补足不够的字符数的宽度。n为截取cp的前n个字符,后面补'\0'。在格式化到s中时都将加有'\0'结束符。该函数的实际执行过程是:将s和format地址递加,逐个赋值,即:s[i]=format[i](i=0,1,2,……)。
另外,s如果为数组,跟数组的长度没关系,也就是不会出现值溢出问题,因为这里取的只是首地址,字符多于一个时,首地址递加。当然不管用printf还是sprintf打印到屏幕和打印到字符串中,都是遇'\0'结束的。相反,如果字符数组没有'\0',调用printf或者sprintf时会出现未知数据。因为函数是直到遇到空字符结束的。
sprintf(s, "%d", 123); //产生"123"
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"(123前5个字符宽,4567前4个字符宽)
sprintf(s,"%m.ns",cp);//这里m为m个字符宽,如果输出的多于m个字符,则按实际需要分配宽度,如果少于m个字符则在左边(-m.n时在右边,此时是左对齐)补足不够的字符数的宽度。n为截取cp的前n个字符,后面补'\0'。在格式化到s中时都将加有'\0'结束符。该函数的实际执行过程是:将s和format地址递加,逐个赋值,即:s[i]=format[i](i=0,1,2,……)。
另外,s如果为数组,跟数组的长度没关系,也就是不会出现值溢出问题,因为这里取的只是首地址,字符多于一个时,首地址递加。当然不管用printf还是sprintf打印到屏幕和打印到字符串中,都是遇'\0'结束的。相反,如果字符数组没有'\0',调用printf或者sprintf时会出现未知数据。因为函数是直到遇到空字符结束的。
0 0
- C++:sprintf()的用法
- C++:sprintf()的用法
- C++:sprintf()的用法
- C++:sprintf()的用法
- C++:sprintf()的用法
- C语言中sprintf()函数的用法
- C语言中sprintf()函数的用法
- C\C++中sprintf的用法
- C语言中sprintf()函数的用法
- C/C++中sprintf的用法
- C语言中sprintf()函数的用法
- C 语言中sprintf的用法
- C语言中sprintf()函数的用法
- C语言中sprintf()函数的用法
- C语言中sprintf()函数的用法
- C/C++ 语言中 sprintf() 函数的用法
- c语言中sprintf()函数的强大用法
- c语言中sscanf()和sprintf()函数的用法
- 连续信号(模拟信号)在有限区间上的傅立叶级数展开,离散频谱
- 【Github教程】史上最全github使用方法:github入门到精通
- 深入学习python(三) 闭包(Decorator)与装饰器(Closure)
- 什么是野指针?迷途指针!悬空指针!
- 好的用户界面-界面设计的一些技巧
- C/C++中sprintf的用法
- 我们不能计划生活,我们只能为生活做好准备
- 2012蓝桥杯【初赛试题】干支纪年
- 学习笔记----S3C2440 从NANDFLASH启动的设计原理与过程
- [C++_2]结构及函数指针&重载&内联
- 安卓开发拨号器调用
- 我是如何在Tizen app大赛中获奖的
- sql用了leftjoin 没有用where得不到最左表全部数据
- Swing JList组件