C语言文件操作,c语言文件操作函数,C语言超详细讲解文件的操作

C语言文件操作,c语言文件操作函数,C语言超详细讲解文件的操作

C语言文件的操作方法很多,函数也很多。你看怪不怪下面是边肖为大家带来的C语言文件操作方法。欢迎阅读。

:

目录

1.你为什么使用文件2。什么是文件1。程序文件2。数据文件3。文件名3。文件指针4。文件的打开和关闭。文件的顺序读写。文件的随机读写。文件结束确定。

一、为什么使用文件

当我们编写一些项目时,我们应该存储编写的数据。只有我们自己选择删除数据,数据才会不复存在。这就涉及到数据持久化的问题。对于我们来说,数据持久化的一般方法有:将数据存储在磁盘文件中,存储在数据库中等。通过使用文件,我们可以将数据直接存储在计算机的硬盘上,这使得数据具有持久性。

二、什么是文件

磁盘上的文件是文件。

在编程中,我们一般指两种文件:程序文件和数据文件。

1.程序文件

包含源文件(后缀。c)、目标文件(后缀。windows环境下的obj)和可执行程序(后缀。windows环境下的exe)。

2.数据文件

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序需要从中读取数据的文件或者输出内容的文件。

3.文件名

一个文件应该有一个唯一的文件标识,以便用户可以识别和引用它。

文件名的组成:文件路径文件名主干文件后缀

例如:c:\cyuyan\test.txt

三、文件指针

每个使用过的文件在内存中都有一个对应的文件信息区,用来存储文件的相关信息(文件名、文件状态、当前文件位置等。).这些信息存储在一个结构变量中。该结构由系统和命名文件声明。

VS2013编译环境提供的stdio.h头文件具有以下文件类型声明:

struct _iobuf {

char * _ ptr

int _ cnt

char * _ base

int _ flag

int _ file

int _ charbuf

int _ bufsiz

char * _ tmpfname

};

typedef struct _iobuf文件;

不同C编译器的文件类型包含不同的内容,是相似的。

为文件*创建指针变量:

FILE * pf//文件指针变量

定义的pf是一个指针变量,它指向文件类型的数据。这样pf就可以指向某个文件的文件信息区(结构变量)。可以通过文件信息区中的信息访问该文件。也就是说,可以通过文件指针变量找到与之关联的文件。

四、文件的打开和关闭

写程序的时候,打开一个文件,会返回一个FILE*的指针变量指向文件,相当于建立了指针和文件的关系。

fopen-打开文件

fclose-关闭文件(文件在使用后必须关闭以防止数据丢失)

//打开文件

FILE *fopen( const char *filename,const char * mode);

//filename-文件名打开模式-文件访问模式

//关闭文件

int fclose(FILE * stream);

的常见文件访问模式如下:

例如:

# includestdio.h

#includeerrno.h

int main()

{

//打开文件

FILE* pf=fopen('data.txt ',' w ');

if (pf==NULL)

{

printf('%s\n ',strerror(errno));

返回;

}

//使用文件

//关闭文件

fclose(pf);

pf=NULL

返回0;

}

五、文件的顺序读写

功能的详细说明:

从流中读取一个字符

int fgetc(FILE * stream);

指向文件结构的指针

fputc-将字符写入流中

int fputc( int c,FILE * stream);

c-要写入的字符流-指向文件结构的指针

从流中获取一个字符串

char *fgets( char *string,int n,FILE * stream);

字符串-数据的存储位置n-要读取的最大字符数流-指向文件结构的指针

fputs-向流中写入一个字符串

int fputs( const char *string,FILE * stream);

字符串-输出字符串流-指向文件结构的指针

FSF-从流中读取格式化数据

int fscanf( FILE *stream,const char *format [,argument ].);

stream-指向文件结构格式的指针-格式控制字符串参数-可选参数

fprintf-将格式化的数据打印到流中

int fprintf(文件*流,常量字符*格式[,参数].);

stream-指向文件结构格式的指针-格式控制字符串参数-可选参数

从文件中读取二进制数据

size_t fread( void *buffer,size_t size,size_t count,FILE * stream);

缓冲区-数据大小的存储位置-项目大小(以字节为单位)计数-要读取的最大项目数流-指向文件结构的指针

fwrite-以二进制形式将数据写入流。

size_t fwrite( const void *buffer,size_t size,size_t count,FILE * stream);

缓冲区-数据大小的存储位置-项目大小(以字节为单位)计数-要读取的最大项目数流-指向文件结构的指针

scanf——从标准输入流(stdin)格式化输入的功能

printf——在标准输出流(stdout)上执行打印格式的函数

FSF-你可以从标准输入流(stdin)/指定的文件流中读取格式化的数据。

fprintf-以格式化的方式将数据输出到标准输出流(stdout)/指定的文件流。

你可以从一个字符串中提取(转换)格式化的数据。

sprintf——将格式化数据转换成字符串。

六、文件的随机读写

fseek

根据文件指针的位置和偏移量。

int fseek( FILE *stream,long offset,int origin);//将文件指针移动到指定位置

流-指向文件结构偏移量的指针-起始字节数原点-起始位置

fseek的使用

ftell

返回文件指针从起始位置的偏移量。

long ftell(文件*流);

ftell的使用:

rewind

将文件指针的位置返回到文件的开头。

void rewind(文件*流);

七、文件结束判定

Feof函数:

注意:在文件读取过程中,feof函数的返回值不能直接用来判断文件是否完成。而是用来判断文件读取结束时是读取结束失败还是遇到文件尾结束。

1.文本文件读取是否结束,判断返回值是EOF(fgetc)还是NULL(fgets)。

Fgetc确定返回值是否为EOF,fgets确定返回值是否为NULL。

2.判断读取二进制文件的结束,并判断返回值是否小于实际要读取的数目。

Fread判断返回值是否小于实际要读取的数目。

文件示例:

二进制文件的示例:

关于C语言超详细讲解文件操作的这篇文章到此为止。有关C语言文件操作的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: