`
evasiu
  • 浏览: 169472 次
  • 性别: Icon_minigender_2
  • 来自: 广州
博客专栏
Fa47b089-e026-399c-b770-017349f619d5
TCP/IP详解卷一>阅读...
浏览量:12549
社区版块
存档分类
最新评论

C语言中的文件操作

阅读更多

常常觉得,我对很多东西都是要求会用就好,不求甚解。比如说每次一遇到文件操作,我必要查查相关的API和例子,然后依样画葫芦写下来。或许正是因为这种不求甚解的态度,让我一直处于半桶水的状态。看完了《C专家编程》后,觉得很多东西里面有包含了很多学问;开了博之后,常常希望写点有用的东西,有点像记笔记了,呵呵。记笔记有一个好处,就是要求你必须对现有的知识进行整理,然后才能有条理地写下来。昨天写算法的时候又遇到文件操作的东西了,这次索性把相关的API都整理出来,当是记了一回笔记了。

 

在对文件进行操作之前,要先打开文件,使用完毕后,要关闭文件。文件操作相关的API如下:

 

#include <stdio.h> 
FILE *fopen(const char *path, const char *mode);   //path表示文件路径,mode表示文件使用方式
int fclose( FILE* pf );  //成功关闭返回0,否则返回EOF,并且将错误记录在系统全局变量errno中

 //从stream当前位置读取一个字符
int getc(FILE *stream); 
//将c写入stream当前位置,成功返回0,否则返回EOF
int fputc(int c, FILE *stream);  
//从stream当前位置读取长度为size-1的字符串并保存于s中。成功返回s,否则返回NULL
char *fgets(char *s, int size, FILE *stream);  
 //将字符串写入stream
int fputs(const char *s, FILE *stream);
//读取nmemb份数据,每份大小为size,并将它们保存在ptr指向的空间。返回读取的数据大小
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 
//从ptr指向的空间提取数据向stream写入nmemb份数据,每份大小为size,返回写入的数据大小
size_t fwrite(const void *ptr, size_t size, size_t nmemb,
              FILE *stream);
//格式读写,与标准输入输出的printf和scanf一样,只是在前面多了一个文件指针
int fprintf(FILE *stream, const char *format, ...); 
int fscanf(FILE *stream, const char *format, ...);

fopen返回一个称为“文件指针”的FILE*,FILE是由系统定义的一个结构,该结构中包含有文件名、文件状态、文件当前状态等相关信息。所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。

 

有关文件的使用方式有以下几点说明:

 

1. 文件使用方式由r,w,a,t,b+六个字符拼成,各字符的含义是:
   r(read):

   w(write):

   a(append):
追加
   t(text):
文本文件,可省略不写
   b(banary):
二进制文件
   +:
读和写

2.
凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。

3.
“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

4.
若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

5.
在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。

 

6. 把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。

7.
标准输入文件(键盘),标准输出文件(显示器 ),标准出错输出(出错信息)是由系统打开的,可直接使用。文件关闭函数fclose()文件一旦使用完毕,应用关闭文件函数把文件关闭, 以避免文件的数据丢失等错误。

有关文件读写的一些说明:

1. 进行读取操作时,文件必须是以读或读写方式打开的,进行写操作时,必须是以写或追加方式打开的

2. 文件内部有一个位置指针,用来指向文件当前的读写位置,在文件打开时,该指针总是指向文件的第一个字符位置。

3. 对于fgets,如果在未读完size-1个字符前就遇到了EOF或换行符,则读出结束

4. fread和fwrite可以用来从文件读取结构、写入结构

 

文件的其他操作包括:

 

//将文件的位置指针指向由whence加上偏移offset的位置,whence可以是SEEK_SET(文件起始位置)、SEEK_CUR(当前位置)、SEEK_END(终止位置)
int fseek(FILE *stream, long offset, int whence); 
//返回文件当前位置
long ftell(FILE *stream); 
//将位置指针指向文件头,相当于fseek(stream, 0L, SEEK_SET)
void rewind(FILE *stream); 
//获取或设置文件位置指针
int fgetpos(FILE *stream, fpos_t *pos); 
int fsetpos(FILE *stream, fpos_t *pos);  

 

 

 

 

分享到:
评论

相关推荐

    C语言中文件操作及应用.pdf

    C语言中文件操作及应用.pdf

    C语言中文件操作中读写数据函数的应用.pdf

    C语言文件操作的知识点还包括对于文件指针的管理,例如rewind可以将文件指针重置到文件的开始位置,fseek可以移动文件指针到指定位置,ftell可以返回文件指针当前位置。这些操作都是以字节为单位进行的。在进行文件...

    c语言文件读写操作代码

    c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件...

    C语言:文件操作与输入输出详解及实例

    内容概要:本文详细介绍了C语言中的文件操作和输入输出函数,涵盖数据类型、变量声明、基础输入输出函数 printf 和 scanf 、文件的概念与类型、文件指针与文件结构体、文件的打开与关闭、基本读写函数 fread 和 ...

    c语言文件读写操作代码.txt

    c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 ...

    c语言文件读写操作代码.zip

    c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件...

    C语言文件操作与输入输出详解

    内容概要:本文全面介绍了C语言中的文件操作与输入输出技术,包括数据类型与变量、基本的输入输出函数(printf和scanf)、文件的基本概念和类型、文件指针的操作、文件的打开与关闭、文件的读写操作、格式化读写、...

    操作系统c语言模拟文件管理系统

    5. **文件保存**:在C语言中,文件的保存是隐含在文件操作中的。每次写入操作都会实时保存到磁盘,除非使用了缓冲机制。当文件关闭时,缓冲区中的数据会被自动写入。 6. **打印当前文件**:这可能意味着列出当前...

    Object-C语言文件读写操作代码

    Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写...

    c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码.txt

    c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码

    C语言之文件操作 C语言之文件操作

    c语言文件读写操作代码 C语言之文件操作

    C语言文件操作程序设计语言.pdf

    首先,文档标题《C语言文件操作程序设计语言.pdf》明确指出了文件内容的核心主题,即C语言中如何进行文件操作。C语言提供了一系列的库函数,这些函数定义在头文件stdio.h中,主要用于实现文件操作。 接下来,根据...

    基本的C语言文件读写操作的代码示例

    c语言文件读写操作代码基本的C语言文件读写操作的代码示例基本的C语言文件读写操作的代码示例基本的C语言文件读写操作的代码示例基本的C语言文件读写操作的代码示例基本的C语言文件读写操作的代码示例基本的C语言...

    c语言文件读写操作代码(个人学习笔记)

    c语言文件读写操作代码(个人学习笔记)c语言文件读写操作代码(个人学习笔记)c语言文件读写操作代码(个人学习笔记)c语言文件读写操作代码(个人学习笔记)c语言文件读写操作代码(个人学习笔记)c语言文件读写...

    c语言文件相关操作

    很多人c语言学习的挺好了,但是关于文件相关的操作却很薄弱,以及文件系统也不熟悉,相信学了基本的文件操作,对于文件系统也会有所熟悉认识

    Linux C语言的配置文件操作库

    本文将深入探讨Linux环境下,C语言配置文件操作库的应用及原理。 配置文件通常是文本格式,如INI文件或JSON格式,用于存储应用的设置和参数。在C语言中,没有内置的函数可以直接处理这些文件,因此需要借助第三方库...

    C语言文件操作函数大全(详细讲解)

    C语言文件操作函数大全是指在C语言中对文件进行各种操作的函数集合,包括文件的打开、关闭、读取、写入、追加等操作。这些函数是C语言编程中非常重要的一部分,掌握这些函数可以帮助程序员更好地处理文件操作。 ...

    哈工大C语言课件 指针 文件操作

    5. 文件错误处理:学习如何检测和处理文件操作中的错误,如feof(), ferror()函数的使用。 6. 文件缓冲区:理解缓冲区的概念,以及setvbuf()函数的使用,提高文件读写的效率。 哈工大的C语言课件以其丰富的实例和...

Global site tag (gtag.js) - Google Analytics