【C语言天天练(十三)】printf、fprintf、sprintf和snprintf函数
2017-04-11 19:14
399 查看
#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, ...);
printf是标准的输出函数。
fprintf传送格式化输出到一个文件中。依据指定的format(格式)发送信息(參数)到由stream(流)指定的文件。fprintf仅仅能和printf一样工作。若成功则返回值是输出的字符数,错误发生时返回一个负值。第一个參数是文件指针stream。后面的參数就是printf中的參数,其功能就是把这些输出送到文件指针指定的文件里,假设想要像printf一样将输出送到标准输出,仅仅须要将文件指针FILE指定为stdout就可以。
演示样例程序例如以下:
sprintf,字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。第一个參数str是char型指针,指向将要写入的字符串的缓冲区。后面第二个參数是格式化字符串。
演示样例程序:
snprintf函数与sprintf函数类似。它也是将可变个參数依照format格式化成字符串。然后将其拷贝到str中。
(1) 假设格式化后的字符串长度 < size。则将此字符串所有拷贝到str中,并给其后加入一个字符串结束符('\0');(2)
假设格式化后的字符串长度 >= size,则仅仅将当中的(size-1)个字符拷贝到str中,并给其后加入一个字符串结束符('\0'),返回值为格式化后的字符串的长度。
演示样例程序:
%sf
%sfjdksfj
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, ...);
printf是标准的输出函数。
fprintf传送格式化输出到一个文件中。依据指定的format(格式)发送信息(參数)到由stream(流)指定的文件。fprintf仅仅能和printf一样工作。若成功则返回值是输出的字符数,错误发生时返回一个负值。第一个參数是文件指针stream。后面的參数就是printf中的參数,其功能就是把这些输出送到文件指针指定的文件里,假设想要像printf一样将输出送到标准输出,仅仅须要将文件指针FILE指定为stdout就可以。
演示样例程序例如以下:
#include <stdio.h> FILE *stream; int main(void) { char s[] = "this is a string.\n"; char c = '\n'; stream = fopen("fprintf.out", "w"); fprintf(stream, "%s", s); fprintf(stdout, "abc\n"); return 0; }该程序的执行结果是在fprintf.out文件里存入了this is a string.字符串,在标准输出输出了abc字符串。
sprintf,字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。第一个參数str是char型指针,指向将要写入的字符串的缓冲区。后面第二个參数是格式化字符串。
演示样例程序:
#include <stdio.h> int main(void) { char s[100]; sprintf(s, "%%sfjdksfj" ); printf("%s\n", s); return 0; }运行后输出结果是
%sfjdksfj
snprintf函数与sprintf函数类似。它也是将可变个參数依照format格式化成字符串。然后将其拷贝到str中。
(1) 假设格式化后的字符串长度 < size。则将此字符串所有拷贝到str中,并给其后加入一个字符串结束符('\0');(2)
假设格式化后的字符串长度 >= size,则仅仅将当中的(size-1)个字符拷贝到str中,并给其后加入一个字符串结束符('\0'),返回值为格式化后的字符串的长度。
演示样例程序:
#include <stdio.h> int main(void) { char s[10]; snprintf(s, 4, "%%sfjdksfj" ); printf("%s\n", s); snprintf(s, sizeof(s), "%%sfjdksfj" ); printf("%s\n", s); return 0; }执行结果:
%sf
%sfjdksfj
相关文章推荐
- 【C语言天天练(十三)】printf、fprintf、sprintf和snprintf函数
- printf、fprintf、sprintf和snprintf函数
- C语言--格式化输入/输出函数(printf/scanf,fprintf/fscanf,sprintf,sscanf)
- C语言中的输入输出函数详解与比较scanf,sscanf,printf,sprintf,fprintf
- fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出
- 简述sprintf、fprintf和printf函数的区别
- printf()、fprintf()和sprintf()的总结
- 【C语言天天练(十六)】字符串输出函数puts、fputs和printf
- printf、sprintf与fprintf 的区别
- stderr和stdout(printf、fprintf、sprintf)(转)
- man 3 printf fprintf sprintf
- fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出【转】
- 关于fputc、fgetc、printf、sprintf、sprintf_s以及fprintf
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换
- fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出
- printf、fprintf、dprintf、sprintf、snprintf、vprintf系列
- C语言之linux内核可变参实现printf,sprintf
- C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
- printf、sprintf与fprintf 的用法区分