工学1号馆

home

fprintf函数

By Wu Yudong on November 26, 2015

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

如果文章对您有帮助,欢迎点击下方按钮打赏作者

Comments

实例一输入输出为同一个文件


    @潘政宇
    文章的目的是举例说明fprintf函数的用法,不是真的运行后面的代码


To verify that you are human, please fill in "七"(required)