zoukankan      html  css  js  c++  java
  • C/C++中sprintf的用法

           原型: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个字符,后面补''。在格式化到s中时都将加有''结束符。该函数的实际执行过程是:将s和format地址递加,逐个赋值,即:s[i]=format[i](i=0,1,2,……)。
           另外,s如果为数组,跟数组的长度没关系,也就是不会出现值溢出问题,因为这里取的只是首地址,字符多于一个时,首地址递加。当然不管用printf还是sprintf打印到屏幕和打印到字符串中,都是遇''结束的。相反,如果字符数组没有'',调用printf或者sprintf时会出现未知数据。因为函数是直到遇到空字符结束的。
  • 相关阅读:
    深入分析 Python 的垃圾回收机制
    9.26
    Web安全之ML--构建机器学习工具箱
    第八节--图的数据结构及其算法
    第七节--树形结构及其算法
    第六节--堆栈与队列算法
    第四节--查找与哈希算法
    第三节--排序算法
    第二节--常用数据结构
    第一节--走入算法的世界
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318416.html
Copyright © 2011-2022 走看看