- 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 argument
2 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