在实际程序运行中,我们往往需要从文件中读取数据,或者需要往文件中写入数据,那如何完成这些操作?我们就需要掌握一些文件操作函数了。

文件名

一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含:文件路径+文件名主干+文件后缀
在电脑中一个文件名为:
但在程序中,为了与一些转移字符区分开,会这样表示一个文件名: D:/SHDownload/lrc 即将““换为”/".

文件指针

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是在stdio.h中进行文件类型申明的。(VS2008)中。
一般都是通过一个FILE*的指针来维护这个FILE *结构的变量,这样使用起来更加方便。

创建一个FILE*的指针变量:
FILE * fp ; //文件指针变量
通过文件指针变量能够找到与它关联的文件。

文件的打开和关闭

文件在读写之前应该先打开文件,在使用结束后应该关闭文件。使用fopen函数来打开文件,fclose来关闭文件。

文件的打开与关闭
FILE* fopen( const char * filename, const char* mode );
int fclose (FILE* stream );

打开方式也就是*mode包括很多种类,取一部分做以介绍

" r " (只读) :为了输入数据,打开一个已经存在的文本文件。
" w "(只写):为了输出数据,打开一个文本文件。
" a "(追加):向文本文件尾添加数据。

首先,我们创建一个文本文件,并在文件中写一些内容,如下:


然后我们以"w"只写模式打开文件,然后什么都不做,再关闭文件,看看有什么变化。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {FILE* pf;pf = fopen("D:/文档/myfile.txt", "w");fclose(pf);system("pause");return 0;
}


程序运行窗口没有任何变化,但我们打开文本文档,就会发现文件中内容被清空了,所以我们可以知道,当我们以w方式打开文件的时候,会清空文件的原有内容,提醒我们在实际使用的时候一定要注意。

那以a方式打开文件呢?与刚才一样,我们在文本中输入fopen example的内容,然后执行以下操作:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
int main() {FILE* pf;pf = fopen("D:/文档/myfile.txt", "a");char str[] = "add";fwrite(str, 1,strlen(str), pf);fclose(pf);system("pause");return 0;
}

接下来运行结果会跟之前有什么不同?

可以看出实现了追加的功能,没有清空之前的内容。

文件的顺序读写

功能 函数名 适用于
字符输入函数 fgetc 所有输入流
字符输出函数 fputc 所有输出流
文本行输入函数 fgets 所有输入流
文本行输出函数 fputs 所有输出流
格式化输入函数 fscanf 所有输入流
格式化输出函数 fprintf 所有输出流
二进制输入 fread 文件
二进制输出 fwrite 文件

接下来看一下fprintf与sprintf函数的用法。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {FILE* pf;pf = fope红n("D:/文档/myfile.txt", "w");int x = 2;fprintf(pf, "x=%d", x);fclose(pf);system("pause");return 0;
}

fprintf是往文件中输出内容。可以看出fprintf的用法与printf很相似,运行结果如下:

sprintf则是往一个字符数组中输出一个格式化字符串。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {FILE* pf;pf = fopen("D:/文档/myfile.txt", "w");int x = 2;fprintf(pf, "x=%d", x);char str[1024] = { 0 };sprintf(str, "%d", x);printf("%s\n", str);fclose(pf);system("pause");return 0;
}

运行结果:


我们可以看出,sprint将一个整数2输出到了str这个字符数组中,最终打印出来了一个2,但区别在于现在这个’2’已经从一个整数变为了一个字符串。
所以我们要注意,在C语言中,如何将一个整数转换为字符串?sprintf就是方法之一。
相对应的,我们也可以用sscanf函数将一个字符串转换回整数,用法类似。

文件的随机读写

fseek 根据文件指针的位置和偏移量来定位文件指针。
int fseek( FILE * stream, long int offset, int origin );

ftell 返回文件指针相对于起始位置的偏移量
long int ftell ( FILE * stream );

rewind 让文件指针的位置回到文件的起始位置
void rewind ( FILE * stream );

C语言文件操作相关函数相关推荐

  1. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  2. C语言文件缓冲区作用,C语言 文件操作4--文件结构体FILE的理解以及缓冲区再讲...

    //文件结构体FILE的理解以及缓冲区再讲 #include #include //要点:文件结构 //struct _iobuf { // char *_ptr; ------当前缓冲区内容指针 / ...

  3. C语言文件操作解析(二)【转载】

    http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...

  4. C语言文件操作解析(二)

    C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为 FILE* fopen(const char *path,const cha ...

  5. C语言文件操作函数的编写

    1.  编写文件操作的头文件 /************************************************************************** Copyright ...

  6. c语言计算文件摘要值,c语言文件操作摘要.ppt

    c语言文件操作摘要 第十章 文件 10.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 非 ...

  7. C语言文件操作解析(一)

    C语言文件操作解析(一) 在讨论C语言文件操作之前,先了解一下与文件相关的东西. 一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中.文本文件只能存储文件中的有 ...

  8. c语言全文件操作函数,C语言文件操作函数大全

    C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...

  9. C语言文件英文,c语言文件操作(国外英文资料).doc

    c语言文件操作(国外英文资料) 韧仔欠鳖佳刀寺男拒姚友畔庶炳告舞漾容验熬销避暇庆茅奠哑栓障于筏茸兔厘万寿日击悯汤糠毛塞丈河汤忧寸绞忧择曹酪泛磋牵卧国叛株咙麓独檀烈钎熬酪夫栓线夹蔗屏矾疙陋柱狂茅悬匈队八 ...

最新文章

  1. 送书 | 你一定能看懂的算法基础书(代码示例基于Python)
  2. 分析文件上传过程中的HTTP头部
  3. github php面试题,GitHub - johnsong261510/php_interviews: PHP 面试题汇总、剑指 Offer PHP 代码实现版本...
  4. 皮一皮:听说这是功夫熊猫风的情侣酒店...
  5. 网络中最常用的网络命令(2)-完整参数
  6. linux分区工具fdisk的使用
  7. cloud 部署_使用Google Cloud AI平台开发,训练和部署TensorFlow模型
  8. 教育部正式宣布:9年义务教育大变动!与孩子息息相关
  9. 最大似然估计MLE和最大后验概率MAP
  10. 数据大屏产品介绍PPT_【达索系统】 Ortems APS产品介绍 PPT
  11. 问卷java_Java 问卷调查
  12. 帝国cms框架的Webshell
  13. zoc7 下载和使用指南 连接远程主机
  14. 使用 Python 计算 DID 及其对应P值
  15. html设置ios状态栏颜色,ios 显示html标签,超链接颜色以及下划线的处理
  16. BH1750 光照传感器文档详解 及 驱动设计
  17. C#EF DBFirst学习
  18. 科技类新闻快讯_新闻快讯—您可能使用了错误HTML。
  19. linux zip unzip指令使用方法
  20. 备战APEC 智利公布2019峰会主要议题

热门文章

  1. 数据库中的创建索引语句
  2. sqlsever数据库用户管理
  3. 如何学好pathon
  4. jquery遍历多个li_21个jQuery遍历节点方法详解
  5. 北京居住登记卡——寄住/借住证明
  6. Blue Prism获得1亿英镑的新融资
  7. solidity修饰符、节省gas技巧
  8. 2023年准备报考软考,考哪个?
  9. 中国计量大学2023年工商管理硕士(MBA)招生简章
  10. 11.11查缺补漏少一单?戴尔双十一同等优惠最后2天!