精华内容
下载资源
问答
  • C语言文件读写函数——fputc和fgetc

    千次阅读 2016-10-21 15:56:25
    了解了在C语言中如何打开文件后就可以正式进行文件的读写操作了,文件根据类型又分为ASCII文件和二进制文件,我们首先从简单的入手,先看看ASCII文件(文本文件)是如何读取的。  ASCII文件(文本文件)中保存的...

    原文链接:http://www.letuknowit.com/archives/96/

    了解了在C语言中如何打开文件后就可以正式进行文件的读写操作了,文件根据类型又分为ASCII文件和二进制文件,我们首先从简单的入手,先看看ASCII文件(文本文件)是如何读取的。

      ASCII文件(文本文件)中保存的是一个字符序列,只要按照顺序一个个的读出直到文件结尾,即可实现对整个文件的读取了
    ,写入文件也是一样的道理。

    fputc函数

      fputc函数的作用就是将一个字符写入到文件中,其调用形式为:

    fputc(ch,pFile);

    其中ch就是要写入的字符,pFile是指向FILE结构的指针,通过fopen函数打开文件即可获取pFile。

      写入文件有可能会失败,但怎么才能知道是否正确写入到文件了呢?这时候就需要看fputc函数的返回值了,fputc函数如果成功的将字符写入到文件了,则其返回值就是写入的那个字符,如果失败,则返回EOF(End Of File的意思)。EOF是一个符号常量,在stdio.h中EOF被定义为-1,因此见到EOF把他当做-1就是了

    fgetc函数

      知道fputc是做什么的了,fgetc基本也就知道了,这个就是从文件中读入一个字符的函数,其调用形式为:

    ch=fgetc(pFile);

      参数pFile和fputc函数的参数一样,只不过少了一个参数ch,跑到返回值这里了。当fgetc成功从文件中读入字符后,ch就是读取到的字符,如果读取失败,则ch=EOF。

      综上可见,EOF在文件的读写操作中扮演中重要的角色,当读取的值为EOF的时候,程序就知道文件已经读完了

    fputc函数和fgetc函数实例演示

      说一大堆不如直接来段程序记忆深刻,下面知蚁就做一个示例程序,读取一个文本文件的数据,然后写入到另外一个文本文件中去,我们先准备一个有内容“I like www.letuknowit.com”的文本文件。

    C语言知蚁博客
    #include “stdio.h”

    void main()
    {
        char ch;
        FILE *pSrc,*pDes;

        pSrc = fopen(“srcfile.txt”,“r”);    //打开文件读取数据
        pDes = fopen(“desfile.txt”,“w”);    //打开文件写入数据

        if((NULL==pSrc) || (NULL==pDes))
        {
            printf(“Open file failed,can’t go on\n);
            return;
        }

        ch=fgetc(pSrc);    //读取第一个字符
        while(EOF != ch)
        {
            fputc(ch,pDes);    //写入字符
            ch=fgetc(pSrc);    //读取下一个字符
        }

        printf(“Successed copy srcfile to desfile\n);

        fclose(pSrc); //别忘了关闭
        fclose(pDes); //同上
    }

    运行程序之前,需要在程序运行目录下新建一个文本文件,内容随便写。值得一提的是,fputc函数和fgetc函数支持中文


    展开全文
  • fopen函数会为要打开的文件新建一个流,然后返回一个指向file型对象的指针,该file型对象中保存了控制这个流所需要的信息。 fp=fopen("1.txt","r") 这里fp可以任意命名,fp不是流的实体,而是指向流的指针。接收两个...

    一、打开文件

    打开文件使用库函数中的fopen函数。fopen函数会为要打开的文件新建一个流,然后返回一个指向file型对象的指针,该file型对象中保存了控制这个流所需要的信息。

    fp=fopen("1.txt","r")

    这里fp可以任意命名,fp不是流的实体,而是指向流的指针。接收两个参数,一个是文件名,另一个是打开文件的模式。

    打开文件的mode模式有:

    Mode

    描述

    r

    以只读模式打开文件

    w

    以只写模式打开文件,若文件存在则文件长度清0

    a

    以追加模式(从文件末尾处开始的只写模式)打开或建立文本文件

    rb

    以只读模式打开二进制文件

    wb

    以只写模式打开二进制文件,若文件存在则文件长度清0

    ab

    以追加模式(从文件末尾处开始的只写模式)打开或建立二级制文件

    r+

    以读写模式打开文件

    w+

    以读写模式打开文件,若文件存在则文件长度清0

    a+

    以追加模式(文件末尾处开始写入的更新模式)打开或建立文本文件

    r+b或rb+

    以读写模式打开二进制文件

    w+b或wb+

    以读写模式建立二进制文件,若文件存在则文件长度清0

    a+b或ab+

    以追加模式(文件末尾处开始写入的更新模式)打开或建立二进制文件

    以读取模式(mode以字符'r开头')打开文件时,如果该文件不存在或者没有读取权限,则文件打开失败。

    对于追加模式(mode以字符'a'开头)打开的文件,打开后的写入操作都是从文件末尾处开始的。

    对于以读写模式(mode的第2或第3个字符为'+')打开的文件相关联的流,可以进行输入和输出操作。但若要在输出操作之后进行输入操作,就必须在这两个操作之间调用文件定位函数(fseek、fsetpos或rewind)。

    返回一个指向对象的指针,该对象用于控制打开的流。打开操作失败时,返回空指针。

    二、关闭文件

    当文件操作完毕后一定要关闭文件,目的是刷新stream流,将保存在缓存中的内容写入到文件中。

    fclose(fp)

    若成功的关闭流,则返回0,否则返回EOF。

    完整的打开关闭文件例子:

    clip_image002

    从键盘读入文件名,并打开:

    clip_image004

    三、文件数据汇总

    要从文件中读取数据需要用fscanf函数。fscanf可以对任意流执行与scanf函数相同的输入操作,比scanf多一个参数。

    fscanf(fp,"%d",&x)

    函数将取到的数据保存在参数x中,若没有执行任何转换就发生了输入错误,则返回定义的EOF错误,否则返回成功赋值的输入项数。若在输入中发生匹配错误,则返回的输入项会少于转换说明符对应的实参个数,甚至为0。

    clip_image006

    练习:从指定文件读入数据,对其中的身高进行从高到低排序:

    test.txt文件内容:

    clip_image008

    源代码:

    clip_image010

    四、向文件写入数据

    printf函数是向标准输出流进行输出的函数,而向任意流执行同样操作就是fprintf函数。

    fprintf(fp,"%d",x)

    练习1:写入日期和时间

    将当前日期和时间写入指定文件

    clip_image012

    练习2:从键盘读取名字、身高和体重信息,并写入文件

    clip_image014

    五、文件内容的显示与复制

    将A文件的内容读取后写入到B文件中。fgetc()函数:读文件函数(由文件中读取一个字符)

    练习1:复制A文件内容到B文件

    clip_image016

    练习2:显示文件内容

    clip_image018

    练习3:统计读入文件的文件行数

    clip_image020

    注:对最后一行处理时需要注意,最后一行如果为换行符则不需要操作,如果不为换行符则需要对count再加一行!

    六、在二进制文件中保存实数

    fwrite和fread函数分别用于二进制文件的写入与读取。

    文件写入函数为:

    fwrite(&pi,sizeof(double),1,fp)

    文件读取函数为:

    fread(&pi,sizeof(double),1,fp)

    转载于:https://www.cnblogs.com/dvbbs2012/p/5159776.html

    展开全文
  • fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FILE 类型的结构体变量中,然后将该变量的地址返回。 表示以“只读”方式打开当前目录下的 demo.txt 文件,并使 fp 指向...
    • fopen和fclose

    • FILE *fp = fopen(“demo.txt”, “r”);

    • fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FILE 类型的结构体变量中,然后将该变量的地址返回。

    • 表示以“只读”方式打开当前目录下的 demo.txt 文件,并使 fp 指向该文件,这样就可以通过 fp 来操作 demo.txt 了。fp 通常被称为文件指针。

    • 打开文件出错时,fopen() 将返回一个空指针,也就是 NULL,我们可以利用这一点来判断文件是否打开成功,请看下面的代码:

    FILE *fp;
    if( (fp=fopen("D:\\demo.txt","rb") == NULL ){//挺重要的
        printf("打开文件失败!\n");
        exit(0);  //退出程序(结束程序)
    }
    
    • r"
      以“只读”方式打开文件。只允许读取,不允许写入。文件必须存在,否则打开失败。
    • “w”
      以“写入”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。
    • “a”
      以“追加”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。
    • “r+”
      以“读写”方式打开文件。既可以读取也可以写入,也就是随意更新文件。文件必须存在,否则打开失败。
    • “w+”
      以“写入/更新”方式打开文件,相当于w和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。
    • “a+”
      以“追加/更新”方式打开文件,相当于a和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。
    • “t” 文本文件。如果不写,默认为"t"。 “b” 二进制文件。
    • 文件一旦使用完毕,应该用 fclose() 函数把文件关闭,以释放相关资源,避免数据丢失。fclose() 的用法为:fclose(fp);文件正常关闭时,fclose() 的返回值为0,如果返回非零值则表示有错误发生。

    • fprintf和fscanf(格式化读写文件)

    • fp 为文件指针,format 为格式控制字符串,… 表示参数列表。与 scanf() 和 printf() 相比,它们仅仅多了一个 fp 参数。例如:
    FILE *fp;
    int i, j;
    char *str, ch;
    fscanf(fp, "%d %s", &i, str);
    fprintf(fp,"%d %c", j, ch);
    
    • fprintf() 返回成功写入的字符的个数,失败则返回负数。fscanf() 返回参数列表中被成功赋值的参数个数,文件结束会返回EOF

    • 格式化 就是会依据你输入的格式存储,比如说上面的%d %s 间隔一个空格就会保存一个空格

    • 这要有助于直接在程序外打开文件,查看内容

    展开全文
  • C语言文件操作什么是文件:文件操作:编程操作 :文件操作基本函数说明fputc:fgetc:fputs:fgets:fprintf:fscanf:fseek:ftell:EOF:frewind:fwrite:fread: 什么是文件: 我们对文件的概念已经非常熟悉了,比如常见的 ...

    什么是文件:

    我们对文件的概念已经非常熟悉了,比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种,最主要的作用是保存数据。

    文件操作:

    操作文件的正确流程为:打开文件 --> 读写文件 --> 关闭文件。文件在进行读写操作之前要先打开,使用完毕要关闭。

    编程操作 :

    FILE *file; //定义FILE结构体指针变量,这个指针指向的FILE结构体的内存空间是系统自动分配的.

    file = fopen(“文件路径”,“文件打开方式”); 打开使用完过后记得关闭fclose(文件指针);

    返回值 : 执行成功返回FILE结构体指针,出错返回NULL.

    注意:一般是不会同时进行写入和读取

    打开方式 描述
    “r” 以只读方式打开文件,文件必须存在.
    “r+” 以可读写的方式打开文件,文件必须存在.
    “w” 以只写方式打开文件,文件不存在则创建;文件存在则擦除文件中的内容.
    “w+” 以可读写的方式打开文件,文件不存在则创建;文件存在则擦除文件中的内容.
    “a” 以只写方式打开文件,文件不存在则创建;文件存在则新内容从文件内容末尾开始写入.
    “a+” 以可读写方式打开文件,文件不存在则创建,文件存在则新内容从文件内容末尾开始写入.

    文件操作基本函数说明

    fputc:

    fputc('字符',文件指针);向文件中输入一个字符
    char c='Y'; fputc(c,file);
    

    fgetc:

    fgetc(文件指针);从文件中获取一个字符
    	fgetc(file);这个函数有一个返回值,可以用变量去接受,也可以直接输出
    

    fputs:

    fputs("字符串",文件指针);向文件中输入一串字符
    	char s[100]="asdf";fputc(s,file);
    

    fgets:

    fgets(字符数组,要读取字符的大小,文件指针);获取一个字符串
    	char s[100]; fgets(s,100,file);这样就把文件里面的字符串赋值给了字符数组s
    

    fprintf:

    fprintf(文件指针,"格式占位符",变量名);向文件中写入格式化的数据
    typedef struct student
    {
    	int id;
    	char name[20];
    }STU;//定义结构体
    	STU stu[3] = { 1, "asd", 2, "qwe", 3, "zxc" };//结构体数组
    	for (int i = 0; i < 3; i++)
    {
    	fprintf(file, "id是:%d  name是:%s\n", stu[i].id, stu[i].name);//格式化写入到文本里面
    }
    

    fscanf:

    fscanf(文件指针,"格式占位符",变量);//从文件中获取格式化的数据
    	STU stu[3] = { 0 };//定义结构体数组来保存从文件读取到的元素
    	for (int i = 0; i < 3; i++)//从文本里面读取到结构体数组里面
    	{
    		fscanf(file, "id是:%d  name是:%s\n", &stu[i].id, stu[i].name);
    	}
    	for (int i = 0; i < 3; i++)//输出
    	{
    		printf("id是:%d  name是:%s\n", stu[i].id, stu[i].name);
    	}
    

    fseek:

    fseek(file,偏移量,位置(SEEK_END);//偏移量是正数就是往后移动,是负数就是往前移动
    
    
    位置描述符 描述
    SEEK_CUR 文件内部指针当前位置
    SEEK_END 表示文件末尾
    SEEK_SET 文件开头

    fseek(file, 2, SEEK_CUR);//文件指针从当前的位置往后面移动了两个单位

    ftell:

    int off=ftell(fp);得到文件内部指针相对于文件(从文件开头的位置)的偏移量
    

    EOF:

    EOF 文件末尾的标志

    char c;
    
    while((c=fgetc(file))!=EOF)//这样循环用来判断是否读到文件末尾
    

    frewind:

    rewind(fp);//将文件内部指针移回文件开头
    

    fwrite:

    fwrite(需要写进去字符数组, 数据类型的大小,数据的个数, 文件指针);向文件中写入数据
    

    fread:

    fread(用来保存的字符数组,数据类型的大小,数据的个数,文件指针);从文件中获取格式化的数据
    
    

    特别提醒:操作完之后记得关闭文件

    fclose(文件指针)
    
    展开全文
  • 文件指针 缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。...使用文件操作函数前需创建一个指针变量 FILE *pf;//文件指针变量 文件的打开和关闭 文件在读取之前应该先打开文...
  • 平时用Qt的QFile用的习惯了,发现其实连C语言文件操作函数都不熟悉,专门用C++写了个通讯录的命令行程序练手,总结一下用到的几个函数,使用这几个函数需要#include &amp;lt;stdio.h&amp;gt;。 fopen和...
  • 用于保存打开文件后的指针。 C语言中可以用 gets(char *str) 来输入一行(包括空格)。 FILE *p = fopen("文件名",“打开的权限”); 其中权限可以是w ,此时如果文件不存在会自动创建,如果存在就会自动覆盖...
  • 输入文件名,创建文件,并写入文件内容。 如下: 答案: 1: #include <stdio.h> #include <stdlib.h> void main() { FILE*fp; char ch,filename[20]; printf("请输入文件名:\n"); scanf("%s",...
  • 文件指针 缓冲文件系统中,关键的概念是...这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明: 例如,VS2008编译环境提供的 stdio.h 头文件中有以下的文件类型申明: struct _iobuf { c...
  • fprintf是将数据转换为字符后再写入文件 fwrite是将数据不经转换直接以二进制的形式写入文件   一、fprintf函数。...1.以文本的形式保存文件函数原型为 int fprintf(FILE* stream,const char* format,...
  • C语言 fread函数

    2019-10-07 17:46:35
    C语言 fread函数fread fread函数:读取文件函数(从文件流读取数据) 头文件:#include<stdio.h>...函数说明:从文件流中读取数据,stream为已打开的文件指针,ptr指向欲保存读取文件数据...
  • C语言文件操作

    2021-03-10 10:11:28
    C语言文件操作 常见硬件设备所对应的文件 文件 硬件设备 stdin 标准输入文件,一般指键盘;scanf()、getchar() 等函数默认从 stdin 获取输入。 stdout 标准输出文件,一般指显示器;printf()、putchar() 等函数默认...
  • C语言——文件操作(读取文件保存到结构体)

    万次阅读 多人点赞 2019-03-09 16:25:02
    之前写过一篇文章实现了文件操作的任意读写,今天来实现文件操作,读取txt文件,将数据保存到结构体中。 C语言——文件操作(实现带空格字符串任意读写) 先介绍C语言中一个功能强大的函数——sscanf(),它是C语言...
  • C语言 stat 函数

    2019-10-07 17:46:36
    C语言 stat 函数stat头文件: #include<sys/stat.h> #include<unistd.h>...**函数说明:**stat函数获取file_name指向文件文件状态,并将文件信息保存到结构体buf中,执行成功返回0,失...
  • 文件操作说白了,就是把原来输在终端上的数据输到磁盘文件保存。 其核心就是学习一些文件函数,其他操作都和前面的一样。 打开、关闭文件 打开: FILE *fopen(const char *path, const char *mode); path :路径...
  • 关于open用法,是及时打开处理后再及时关闭这种用法好,还是打开后用全局变量保存描述符 直到结束该文件的操作后再关闭的用法好
  • c语言程序在打开一个文件时,系统会自动地在内存中开辟一个区,用来存放文件的有关信息(如文件名、文件状态等)这些信息保存在一个结构体变量中,该结构体是由系统定义的,取名为FILE。FILE定义在头文件stdio.h中。...
  • 以下列出来的所有案例均只修改类型说明符,只列出来部分情况,请大家按照TXT书写格式与下边情况一一对应。 如果各位大佬有高招处理下边的 “无效”,还请不吝赐教。
  • C语言读取文件内容,保存到数组里面

    万次阅读 多人点赞 2020-01-01 22:22:01
    前言 本文分为两部分,其中一部分主要使用C语言编程实现读取文件内容(要打开的文件名称采用命令行方式输入),统计文件内容的行数,并将文件内容保存到数组里面打印...同时还可将读取的文件内容使用fprintf函数保存...
  • C语言学习笔记 之 关于文件操作函数 文件操作是C语言的最后篇章了,一起来看一下用C语言怎么操作文件 一:文件指针 我们所说的文件不同于一个数据类型,比如一个test.txt文档,它有自己的一些属性,比如文件的当前...
  • 我想把arr1的信息录入到arr2里面的txt文本里...源站可能有防盗链机制,建议将图片保存下来直接上传(img-FVka33Nw-1606832517522)(%5Bimg=https://img-bbs.csdn.net/upload/202012/01/1606831656_119776.png%5D%5B/img%5
  • C语言 文件操作

    2019-05-12 18:18:08
    原文链接:file:///C:/Users/Administrator/Desktop/C%E8%AF%AD%E8%A8%80%E8%AF%A6%E8%A7%A3%20-%20%E6%96%87%E4%BB%B6%20-%20...注:字符存取函数和格式化存取函数保存文件到txt文件中可正常打开显示。(文本) ...
  • 浅谈C语言文件操作

    2020-11-30 22:55:29
    本文重点:1,文件介绍2,文件的打开与关闭fopen()文件打开函数介绍:fclose()文件关闭函数介绍:3,文件的随机读写4,文件读取结束的判定5,文件缓存区 1,文件介绍 我们对文件的概念已经非常熟悉了,比如常见的 ...
  • 文件的写入操作1. 关于写入操作时的操作权限问题2. 文件写入函数 fwrite3. 按格式写入 fprintf4....手把手教会你C语言文件操作(1) 手把手教会你C语言文件操作(2) 文件操作相关函数 好吧,我也知道没
  • 文件会收集需要保存的数据库实体,然后在操作结束时,临时文件会成为新的数据库而原始的会被删除。临时文件的大量使用隐藏了他的一个缺点。我们必须小心来确保程序会选择一个唯一的名字来使用临时文件。如果不是这样...
  • 2: 在C文件里面的参数声名, 会直接保在R0~R3(参数小于5个),其它参数保存在SP指向的栈 3: 在汇编文件里面要声名函数数是可以外部使export ******************************************* C文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 952
精华内容 380
关键字:

c语言文件保存函数

c语言 订阅