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
  • 相关阅读:
    POJ2395 Out of Hay
    POJ2421 Constructing Roads
    POJ2031 Building a Space Station
    POJ1751 Highways
    [NOIP2007] 提高组 洛谷P1099 树网的核
    [NOIP2007] 提高组 洛谷P1005 矩阵取数游戏
    [NOIP2007] 提高组 洛谷P1097 统计数字
    [NOIP2007] 提高组 洛谷P1098 字符串的展开
    [NOIP2007] 普及组
    洛谷 通天系列 P1760 P1757 P1759
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/5408280.html
Copyright © 2011-2022 走看看