fprintf是C/C++中的一个格式化写—库函数,位于头文件<stdio.h>中,其作用是格式化输出到一个流/文件中。
函数原型为int fprintf( FILE *stream, const char *format, [ argument ]…),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。
定义
int fprintf (FILE* stream, const char*format, [argument])
FILE*stream:文件指针
const char* format:输出格式
[argument]:附加参数列表
功 能
传送格式化输出到一个文件中与打印机输出
用 法
#include <stdio.h> #include<stdlib.h> int fprintf( FILE *stream, const char *format, ... );
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
规定符
%d, %i 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p指针的值
%e, %E 指数形式的浮点数
%x无符号以小写十六进制表示的整数
%X 无符号以大写十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
程序示例
函数范例
#include <stdio.h>
int main(void) {
FILE *FSPOINTER;
char STRBUFF[16] = "Hello World."
//...
FSPOINTER = fopen("HELLO.TXT", "w+");
//...
fprintf(FSPOINTER, "%s", STRBUFF);
//...
return 0;
};
输出至文件HELLO.TXT:
Hello World
示例一
#include <stdio.h>
int main(void)
{
FILE *in,*out;
in = fopen("\\AUTOEXEC.BAT", "rt");
if(in == NULL)
{
fprintf(stderr, "Can not open inputfile.\n");
return 1;
}
out = fopen("\\AUTOEXEC.BAT", "wt");
if(out == NULL)
{
fprintf(stderr, "Can not open outputfile.\n");
return 1;
}
while(!feof(in))
fputc(fgetc(in), out);
fclose(in);
fclose(out);
return 0;
}
示例二
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
FILE* stream;
int main(void)
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
stream = fopen("fprintf.out", "w");
fprintf(stream, "%s%c", s, c);
fprintf(stream, "%d\n", i);
fprintf(stream, "%f\n", fp);
fclose(stream);
system("typefprintf.out");
return 0;
}
输出至文件fprintf.out:
this is a string
10
1.500000
示例三
#include <stdio.h>
int main()
{
FILE* fp;
int i = 617;
char* s = "that is a good new";
fp = fopen("text.dat", "w");
fputs("total", fp);
fputs(":", fp);
fprintf(fp, "%d\n", i);
fprintf(fp, "%s", s);
fclose(fp);
return 0;
}
输出至文件text.dat:
total:617
that is a good new
实例一输入输出为同一个文件
@潘政宇
文章的目的是举例说明fprintf函数的用法,不是真的运行后面的代码