#C语言中规定我们使用文件必须初始化一个文件指针
   FILE* pfile = NULL;
  #以a+追加的方式打开文件 返回值0为打开成功
int fp = fopen_s(&pfile, "D://C项目/file/1.txt", "a+");
5   #关闭文件 
    close(pfile);
    pfile = NULL; //将指针指向空 防    mode    处理方式    文件不存在    文件存在    文件输入    文件输
    r      读取       报错       打开      不能      可以
    w      写入       创建       覆盖      可以      不能
    a      追加       创建       追加      可以      不能
    r+     读取/写入     报错       打开      可以      可以
    w+     写入/读取     创建       覆盖      可以      可以
    a+     读取/追加     创建       追加      可以      可以 如果是二进制文件 在打开方式后面加上b即可:如 rb ab wb+
文件读取成功会返回0     读取失败会返回相应的字符 文件的读写操作:
    fputc("字符",文件型指针变量)             对文件写入操作 每次都写入一个字符
    fgetc(文件型指针变量)                 对文件读出操作 每次读出一个字符    返回当前保存的字符 并使文件标识移动到下一位   文件结束返回值为文件结束表示EOF
    fputs("字符串",文件型指针变量)            对文件进行写入操作 每次写入一串字符串 \0不会被写入
    fprintf(文件型指针变量,"格式控制","输入列表") 对文件进行写入操作 按照控制符格式进行写入!!注意 如果格式控制符为%d,%s,%c 一类型的话读出也要相应的类型
    fscanf(文件型指针变量,"格式控制","输出列表")    如果是上面类型那么读出操作就是 fscanf(pfile,"%d,%s,%c",&a,b,c);
    fwrite(存放地址,大小,数据块个数,文件型指针变量)    成批数据写入文件!!!操作成功 返回值为实际写入数据的个数
    例如:fwrite(&a,4,1,pfile)            如果操作成功返回值为1
    fread(存放地址,大小,数据块个数,文件型指针变量)
常见的文件操作函数:
  feof() 检测指向文件的指针是否到达了文件的最末尾 如果到达最末尾会返回一个非0值    常用 bool bisEnd = !feof(pfile);
  fewind() 将指向文件的指针重新指向文件的开始位置                  fewind(pfile);
  fseek() 将指向文件的指针重新指向另一个位置实现随机读写文件   fseek(文件型指针变量,偏移量,起始位置) fseek(pfile,0x123,SEEK_SET); 成功返回0 否则返回非0值
  ftell() 用于测试指向文件指针的当前位置             ftell(文件型指针变量)  int noffset = ftell(pFile); 返回的是一个常数当前指标的位置 否则返回-1L 关于返回值
          成功           失败  EOF是定义在stdio中的常量           
写入
fclose()   成功返回0         返回EOF  
fputc()   返回写入的字符     返回EOF
fputs()    返回一个非负的值  返回EOF
读取
fgetc()    返回读取的字符        返回EOF
fgets()    返回读取的字符串          

C语言中File的应用的更多相关文章

  1. C语言中file文件指针概念及其操作 (转载)

    文件 文件的基本概念 所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件. ...

  2. C语言中FILE是结构体,文件类型的指针

    c语言文件类型指针 我们在定义文件类型指针变量后,称作该指针指向该文件,但本质上,它不是指向一个存储文件信息的结构型变量么?那么我们在用各个函数对所谓的“文件指针”进行操作时,本质上是不是函数通过获取 ...

  3. C语言中system()函数的用法总结(转)

    system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: #include <sys/types.h> #include <sys/wait ...

  4. C语言中access、_mkdir、sprintf、 fopen、fwrite函数

    int access(const char *filename, int amode); amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-. 这个函数还可以检查其它文件属 ...

  5. C语言中的fread和fwrite

    C语言中的fread和fwrite是专门用来操作文件的方法. 1. fread负责从打开的文件指针中读取文件内容. 函数原型:size_t fread(void *p, size_t size, si ...

  6. C语言中fgetc、fputc和getc、putc的区别是什么

    看书的时候,发现了这四个函数,想知道他们的不同.结果上网查发现很多人说fgetc.fputc的f代表的是file,就是这两个函数是和文件有关的!但是一看他们的函数声明,如下图: 发现他们的参数里面都有 ...

  7. 转]解析C语言中的sizeof

    解析C语言中的sizeof 一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出 了其操作数的存储大小.操作数 ...

  8. C语言中extern关键字的使用

    C语言中extern关键字的使用,直接上代码. file1.c文件 #include<stdio.h> extern long power(int); int A = 2; int mai ...

  9. C语言中setjmp与longjmp学习笔记

    C语言中setjmp与longjmp学习笔记 一.基础介绍 头文件:#include<setjmp.h> 原型:  int setjmp(jmp_buf envbuf) ,然而longjm ...

随机推荐

  1. Spring Boot入门简介-Maven配置

    一.简介 -- 简化Spring应用开发的一个框架: -- 整个Spring技术栈的一个大整合: -- J2EE开发的一站式解决方案. 二.背景: ① J2EE笨重的开发.繁多的配置.低下的开发效率. ...

  2. 场景7:带有Linux网桥的提供商网络

    此场景描述了使用带有Linux网桥的ML2插件的OpenStack网络服务的供应商网络实现. 供应商网络通常以灵活性为代价提供简单性.性能和可靠性.与其他场景不同,只有管理员可以管理提供者网络,因为它 ...

  3. 8、OSPF

    OSPF ---最短路径优先 用于在单一自治系统(Autonomous System-AS)内决策路由 自制系统(AS)AS: 执行统一路由策略的一组网络设备的组合可适应大规模的网络: ·    路由 ...

  4. AI: 如何用钢笔工具画曲线

    AI 可以用来绘制矢量图片. 点击钢笔工具,点击画图会画出直线,点击拖拉画图会画出曲线. 锚点的摆放位置在侧面而非顶端. 控制柄越长,图形越尖锐. 画圆时控制柄长度控制在两点之间1/3 长度. 使用的 ...

  5. 90万条数据玩转RFM用户分析模型

    RFM,是一种经典的用户分类.价值分析模型: R,Rencency,即每个客户有多少天没回购了,可以理解为最近一次购买到现在隔了多少天. F,Frequency,是每个客户购买了多少次. M,Mone ...

  6. POJ_1564_dfs

    题目描述: 每组数据给定一个大的数,和一系列降序的数值,要求列出不重复的数值中挑选的数的和为大数的方案,每一种方案里,每个数值最多只能使用一次. 思路: dfs基础题,每次记录大数和当前总和的差值,当 ...

  7. 题解 CSP2019-J2T4【加工零件】

    这题我们要求的是啥呢?仔细读题可以发现,工人传送带的关系可以看成一个 \(n\) 个点和 \(m\) 条边的无向图,然后对于每组询问 \((a,L)\),其实就是问: \(1\) 到 \(a\) 有没 ...

  8. C++解析Json,使用JsonCpp读写Json数据

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.通常用于数据交换或存储. JsonCpp是一个基于C++语言的开源库,用于C++程序的J ...

  9. 必知必会之Lambda表达式

    Java是一门强大的面向对象的语言,除了8种基本的数据类型,其他一切皆为对象.因此,在Java中定义函数或方法都离不开对象,也就意味着很难直接将方法或函数像参数一样传递,而Java8中的Lambda表 ...

  10. 手写-- K-means++

    1. K-means++原理 K均值聚类属于启发式方法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果.K-means是随机选择样本点作为聚类中心,容易造成算法局部收敛或者需要较多迭代次数, ...