zoukankan      html  css  js  c++  java
  • c语言:printf系列的函数

    /**
     *----------------------------stdio.h---------------------------------------
     *  int printf(const char *format, ...)
     *  int fprintf(FILE *stream, const char *format, ...)
     *  int sprintf(char *str, const char *format, ...)
     *  int snprintf(char *str, size_t size, const char *format, ...)
     *
     * --------------------------stdarg.h---------------------------------------
     *  int vprintf(const char *format, va_list ap)
     *  int vfprintf(FILE *stream, const char *format, va_list ap)
     *  int vsprintf(char *str, const char *format, va_list ap)
     *  int vsnprintf(char *str, size_t size, const char *format, va_list ap)
     */
    #include <stdio.h>
    #include <stdarg.h>
    
    int _vprintf(const char *fmt, ...){
            int ret;
            va_list ap;
            va_start(ap, fmt);
            ret = vprintf(fmt, ap);
            va_end(ap);
            return ret;
    }
    
    int _vfprintf(const char *fmt, ...){
            int ret;
            va_list ap;
            va_start(ap, fmt);
            ret = vfprintf(stdout, fmt, ap);
            va_end(ap);
            return ret;
    }
    
    int _vsprintf(const char *fmt, ...){
            char buf[513];
            int ret;
            va_list ap;
            va_start(ap, fmt);
            ret = vsprintf(buf, fmt, ap);
            printf("%s", buf);
            va_end(ap);
            return ret;
    }
    
    int _vsnprintf(const char *fmt, ...){
            char buf[513];
            int ret;
            va_list ap;
            va_start(ap, fmt);
            ret = vsnprintf(buf, sizeof(buf),fmt, ap);
            printf("%s", buf);
            va_end(ap);
            return ret;
    }
    
    int main(){
            int ret;
            char buf[512];
    
            //printf
            ret = printf("%d---%s
    ", 1, "printf");
            printf("ret = %d
    ", ret);
    
            //fprintf
            ret = fprintf(stdout, "%d---%s", 2, "fprintf");
            printf("ret = %d
    ", ret);
    
            //sprintf
            ret = sprintf(buf, "%d---%s", 3, "sprintf");
            printf("%s, ret = %d
    ", buf, ret);
    
            //snprintf
            ret = snprintf(buf, sizeof(buf), "%d---%s", 4, "snprintf");
            printf("%s, ret = %d
    ", buf, ret);
    
            //vprintf
            ret = _vprintf("%d---%s
    ", 5, "vprintf");
            printf("ret = %d
    ", ret);
    
            //vfprintf
            ret = _vfprintf("%d---%s
    ", 6, "vfprintf");
            printf("ret = %d
    ", ret);
    
            //vsprintf
            ret = _vsprintf("%d---%s
    ", 7, "vsprintf");
            printf("ret = %d
    ", ret);
    
            //vsnprintf
            ret = _vsnprintf("%d---%s
    ", 8, "vsnprintf");
            printf("ret = %d
    ", ret);
    }
    View Code
  • 相关阅读:
    最短路径的三种实现方法
    c/c++小知识
    c++ char * const p问题
    C++ typedef 四个用途
    [转]c++面向对象基础
    [转]C++中引用(&)的用法和应用实例
    表情包。
    linux基础学习
    redis缓存在项目中的使用
    关于redis
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/5408280.html
Copyright © 2011-2022 走看看