C语言之文件读写——fscanf(),fprintf()详解

1.fscanf():从文件指针fp指向的文件中,按format中对应的控制格式读取数据,并存储在agars对应的变量中;

原型: 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中的内容需注意一下几点:

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

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

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

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

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

对于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;

}

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

原型:fprintf(FILE *fp, const char *format, agars)

fprintf()和fscanf()相对应,其用法也基本和fscanf()相同。具体参照以下示例:

#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;

}

 

 

 





  • 14
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C语言中的文件读取操作可以使用fscanf函数来实现。fscanf函数的原型为: int fscanf(FILE *fp, const char *format, ...) 其中,fp是文件指针,指向要读取的文件;format是一个格式控制字符串,用于指定读取的数据类型和格式;...是可变参数列表,用于接收读取的数据。 下面是一个示例代码,演示了使用fscanf从文件中读取数据: ```c #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; char ch; fp = fopen("test.txt", "r"); if (fp == NULL) { printf("Open file failure!"); exit(1); } else { fscanf(fp, "%c", &ch); } printf("%c\n", ch); fclose(fp); return 0; } ``` 在上述代码中,首先使用fopen函数打开名为test.txt的文件,并将文件指针赋值给fp。然后,使用fscanf函数从文件中读取一个字符,并将其存储到变量ch中。最后,使用printf函数打印读取到的字符。 希望这个例子能够帮助你理解如何使用fscanf函数进行文件读取操作。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C语言文件读写——fscanf(),fprintf()详解](https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/107151385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值