当前位置: 代码迷 >> 综合 >> printf、fprintf、dprintf、sprintf、snprintf、vprintf
  详细解决方案

printf、fprintf、dprintf、sprintf、snprintf、vprintf

热度:8   发布时间:2023-12-26 21:47:34.0

printf、fprintf、dprintf、sprintf、snprintf均是格式化输出

原型

#include <stdio.h>int printf(const char *format, ...);int fprintf(FILE *stream, const char *format, ...);int dprintf(int fd, const char *format, ...);
//Return: 输出字符的数量 if OK, 负数 if output errorint sprintf(char *str, const char *format, ...);
//Return: 存在数组的字符数量 if OK, 负数 if encoding errorint snprintf(char *str, size_t size, const char *format, ...);
//Return: 存在数组的字符数量 if 缓冲区足够大, 负数 if encoding error
#include <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, ...);#include <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);

printf:写入标准输出,常用

fprintf:写入指定的流,比如写到某个 .txt 文件中

dprintf:写入指定的文件描述符

sprintf:存入指定的数组buf内,会自动在结尾追加null字节。此外,因为sprintf可能会溢出,所以调用者要确保buf的尺寸

snprintf:相对于sprintf明确指定了尺寸,防止溢出问题

  相关解决方案