目 录CONTENT

文章目录

C语言文件读写fscanf(),fprintf()函数详解

米尔嘉
2022-06-19 / 0 评论 / 0 点赞 / 462 阅读 / 868 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-07-04,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

fscanf()函数

函数详解:

  • 💌fscanf()函数的头文件是<stdio.h>,

  • 💌函数原型 为 int fscanf(FILEstream, constcharformat, [argument…]);

  • 💌其功能为根据数据格式(format)从输入流(stream)中写入数据(argument);

  • 💌参数:stream为文件指针,format为格式化字符串,argument 为格式化控制符对应的参数。

  • 💌与fgets的差别在于:fscanf遇到空格和换行时结束,注意空格时也结束,fgets遇到空格不结束。

fscanf()函数举例

  • 💌原型: fscanf(FILE *fp, const char *format, agars)
#include<stdio.h>
#include<stdlib.h>
int main()
{
    FILE *fp;
    char ch;
    fp = fopen("test.txt","r");
    if(fp == NULL)
    {
         printf("Open filefailure!");
         exit(1);
    }
    else
    {
         fscanf(fp,"%s",&ch);
    }
    printf("%s\n",ch);   
    fclose(fp);
    return 0;
}

对于上面else中的内容需注意一下几点:

  • 💌如果要读取一个整数(该整数必须在所存变量的数据类型表示的范围之内)则为:fscanf(fp, “%d”, &ch),而此时ch应该定义为int;若读取的数据大于int所能表示的范围,则读取的数据屏幕显示为负数,即读取的数据发生越界,如果此时的ch依然为char型,则运行时报错(内存读写错误)。

  • 💌如果要读取字符串,则ch应该定义为char型数组或指针(指针需分配空间),而不能将其定义为char型,否则也会报错(内存读写错误);

  • 💌输出数据时的数据格式应该和读取数据时的控制格式相同,除非进行强制转换。

  • 💌使用fscanf()时,其中的变量agars应该取其地址;

  • 💌对于文件的操作,记得文件打开操作后要关闭。

对于fscanf()主要应用:

  • 💌按行读取一个文件中的所有内容 或 依次读取每行相隔的几个数据,具体参照以下示例:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    FILE *fp;
    char *ch, *ah;
    ch =(char *) malloc(sizeof(char) * 100);
    ah =(char *) malloc(sizeof(char) * 100);
    fp = fopen("test.txt","r");
    if(fp == NULL)
    {
         printf("Open filefailure!");
         exit(1);
    }
    else
    {
         while(!feof(fp))
        {
             fscanf(fp, “%s”, ch);
             printf(“%s”, ch);//这两行为按行读取所有数据
             fscanf(fp, “%s%s”, ch, ah);
             printf(“The value of ch and ah is:%s %s\n”,ch,ah);//这两行为分别读取每行相隔的几个数据            
        }
    }
    printf("%s\n",ch);
    free(ch);
    free(ah);
    fclose(fp);
    return 0;
} 

fprintf()函数:

函数详解

  • 💌函数原型:fprintf(FILE *fp, const char *format, agars)

  • 💌将agars(参数表)内各项的值,按format(格式控制字符串)所表示的格式,将数据格式为字符串的形式写入到文件指针fp指向的文件中。

  • 💌fprintf()和fscanf()相对应,其用法也基本和fscanf()相同。

fprintf()函数举例

#include<stdio.h>
#include<stdlib.h>
int main()
{
    FILE *fp;
    fp = fopen("test.txt","a+");
    fprintf(fp,“%d %d”,123456,789);//将123456和789写到test.txt文件中
    fprintf(fp,"%s %s","China","ChongQing"); //将字符串China和ChongQing追加写到test.txt文件中
    fclose(fp);
    return 0; 
}

💌 💌 💌 参 考 文 献:

0

评论区