zoukankan      html  css  js  c++  java
  • printf以及各种变种

    int printf(char *format, [argument]); 其向终端(显示器、控制台等)输出字符

    int fprintf(FILE*stream, const char*format, [argument]); 传送格式化输出到一个文件中
    int sprintf( char *buffer, const char *format, [ argument] … ); 危险!把格式化的数据写入某个字符串缓冲区。 如果buffer太小,容易溢出,导致程序奔溃。
    int snprintf(char *str, size_t size, const char *format, ...); 将可变个参数(...)按照format格式化成字符串,然后将其复制到str中,长度最多size-1, str末尾自动添加。

    v打头的vxprintf,跟原函数功能类似
    int vprintf(char *format, va_list param);       用一个参数取代了变长参数表,且此参数通过调用va_start宏进行初始化

    变参的原理在于利用了参数在stack的分布
    va_start(argptr,fmt);               #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )     其实就是实现了C语言下的不确定参数功能
    cnt=vprintf(fmt,argptr);
    va_end(argptr);                      #define va_end(ap) ( ap = (va_list)0 )      // 将指针置为无效

     

  • 相关阅读:
    Spring_3.1
    handler发消息的形式
    css元素排列
    利用Socket远程发送文件
    jtree添加节点
    url传参中文乱码
    struts action和jsp之间的传值
    Struts 404 The requested resource is not available
    tomcat server需要重启的时刻
    c++获取系统时间(引用别人的博文)
  • 原文地址:https://www.cnblogs.com/zzSoftware/p/3756907.html
Copyright © 2011-2022 走看看