首页 > 编程笔记 > C语言笔记 阅读:23

C语言fscanf()和fprintf():格式化读写文件(附带实例)

读者已经掌握了 printf() 和 scanf() 函数的用法,两者都是格式化读写函数,本节要介绍的 fprintf() 和 fscanf() 函数,与 printf() 和 scanf() 函数的作用相似,它们主要的区别就是读写的对象不同,fprintf() 和 fscanf() 函数读写的对象不是终端而是文件。

C语言fprintf()函数

fprintf() 函数的一般形式如下:
fprintf(文件指针,格式字符串,输出列表);
有以下几点说明:
例如:
fprintf(fp,"%d",i);
上述代码的作用是将整型变量 i 的值以“%d”的格式输出到 fp 指向的文件中。

【实例】使用 fprintf() 函数将数字 88 以字符的形式写到文件中。具体代码如下:
#define _CRT_SECURE_NO_WARNINGS                /*解除vs安全性检测问题*/
#include<stdio.h>
#include<process.h>
void main()
{
    FILE* fp;                    /*定义一个指向FILE类型结构体的指针变量*/
    int i = 88;
    char filename[30];                    /*定义一个字符型数组*/
    printf("please input filename:\n");
    scanf("%s", filename);                      /*输入文件名*/
    if ((fp = fopen(filename, "w")) == NULL)    /*判断文件是否打开失败*/
    {
        printf("can not open!\n Press any key to continue\n");
        getchar();
        exit(0);
    }
    fprintf(fp, "%c", i);     /*将88以字符的形式写入fp所指向的磁盘文件中*/
    fclose(fp);               /*关闭文件*/
}
程序运行过程为:

please input filename:
E:\\demo.txt

程序运行结束后,打开 E:\demo.txt 文件会看到 X,说明 88 以字符的形式写入成功。

C语言fscanf()函数

fscanf() 函数的一般形式如下:
fscanf(文件指针,格式字符串,输入列表);
有以下几点说明:
例如:
fscanf(fp,"%d",&i);
上述代码的作用是读入 fp 所指向的文件中的i的值。

【实例】先在 E 盘创建一个文件,文件的内容为“abcde”,运行程序,将文件中的 5 个字符以整数形式输出。具体代码如下:
#define _CRT_SECURE_NO_WARNINGS               /*解除vs安全性检测问题*/
#include<stdio.h>
#include<process.h>
void main()
{
    FILE* fp;                    /*定义一个指向FILE类型结构体的指针变量*/
    char i, j;
    char filename[30];                    /*定义一个字符型数组*/
    printf("please input filename:\n");
    scanf("%s", filename);                    /*输入文件名*/
    if ((fp = fopen(filename, "r")) == NULL)  /*判断文件是否打开失败*/
    {
        printf("can not open!\n Press any key to continue\n");
        getchar();
        exit(0);
    }
    for (i = 0; i < 5; i++)
    {
        fscanf(fp, "%c", &j);                /*读入fp所指向文件的内容*/
        printf("%d is:%5d\n", i + 1, j);
    }
    fclose(fp);                              /*关闭文件*/
}
程序运行过程为:

please input filename:
E:\\demo.txt
1 is:   97
2 is:   98
3 is:   99
4 is:  100
5 is:  101

相关文章