- 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, …)
- int vprintf(const char *format, va_list arg)
- int vfprintf(FILE stream, const char format, va_list ap)
- int vsprintf(char str, const char format, va_list arg)
- int vsnprintf(char str, size_t size, const char format, va_list ap)
#include
int printf(const char *format, …)
发送格式化输出到标准输出 stdout。
int fprintf(FILE stream, const char format, …)
发送格式化输出到流 stream 中。
FILE * fp;fp = fopen ("file.txt", "w+");fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);fclose(fp);
上述程序编译运行,这将创建 file.txt,内容如下:
We are in 2022
int sprintf(char str, const char format, …)
发送格式化输出到 str 所指向的字符串。
char str[80];sprintf(str,"%s %s %s %d", "We", "are", "in", 2022);printf("%s",str);
We are in 2022
int snprintf(char str, size_t size, const char format, …)
设将可变参数 (…) 按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断。
char str[80];char* s = "hello world";int len = snprintf(str, 7, "%s", s);printf("%s",str);
hello w
以下函数功能与上面一一对应,只是在函数调用时,把上面… 对应的一个个变量用 va_list 调用所替代。在函数调用前 ap 要通过 va_start() 宏来动态获取。
#include
int vprintf(const char *format, va_list arg)
使用参数列表发送格式化输出到标准输出 stdout。
#include <stdio.h>#include <stdarg.h>void WriteFrmtd(char *format, ...){va_list args;va_start(args, format);vprintf(format, args);va_end(args);}int main (){WriteFrmtd("%d variable argument\n", 1);WriteFrmtd("%d variable %s\n", 2, "arguments");return(0);}
1 variable argument2 variable arguments
int vfprintf(FILE stream, const char format, va_list ap)
使用参数列表发送格式化输出到流 stream 中。
#include <stdio.h>#include <stdarg.h>void WriteFrmtd(FILE *stream, char *format, ...){va_list args;va_start(args, format);vfprintf(stream, format, args);va_end(args);}int main (){FILE *fp;fp = fopen("file.txt","w");WriteFrmtd(fp, "This is just one argument %d \n", 10);fclose(fp);return(0);}
编译并运行上面的程序,这将打开当前目录中的文件 file.txt,并写入以下内容:
This is just one argument 10
int vsprintf(char str, const char format, va_list arg)
使用参数列表发送格式化输出到字符串。
#include <stdio.h>#include <stdarg.h>char buffer[80];int vspfunc(char *format, ...){va_list aptr;int ret;va_start(aptr, format);ret = vsprintf(buffer, format, aptr);va_end(aptr);return(ret);}int main(){int i = 5;float f = 27.0;char str[50] = "runoob.com";vspfunc("%d %f %s", i, f, str);printf("%s\n", buffer);return(0);}
5 27.000000 runoob.com
int vsnprintf(char str, size_t size, const char format, va_list ap)
设将可变参数列表按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断。
资料搜集于菜鸟教程
https://blog.csdn.net/qq_51491920/article/details/123178286
