对于C编程者而言,文件分为文本文件和二进制文件。
,文本文件中存储的是ascii码,例如5678存储为对应的ascii码为00110101 00110110 00110111 00111000;文本文件可以more等工具读懂(由OS转换)
,二进制文件存储的就是二进制,编码格式通常由用户自己定义,如MySQL的binlog,这种文件用more读取后无法看懂(因为OS不知道怎么转换)
C语言中操作上面两类文件,存在两大函数阵营,fopen系列及open系列。fopen系列可以认为是open系列的上层封装,open系列函数更注重底层字节流的操作。
fopen系列常用函数包括:
fopen() 打开流
fclose() 关闭流
fputc() 写一个字符到流中
fgetc() 从流中读一个字符
fseek() 在流中定位到指定的字符
fputs() 写字符串到流
fgets() 从流中读一行或指定个字符
fprintf() 按格式输出到流
fscanf() 从流中按格式读取
feof() 到达文件尾时返回真值
ferror() 发生错误时返回其值
rewind() 复位文件定位器到文件开始处
fread() 从流中读指定个数的字符
fwrite() 向流中写指定个数的字符
open系列函数和上面差不多,只是缺少了fprintf(), fscanf()这样的高层函数,下面就说说这两大阵营函数的不同
,fopen系列都是操作FILE*指针,其中如fprintf(), fscanf()可以用于格式化输出和输入,也有如fread(), fwrite()的流操作函数,提供了更丰富的功能
,open系列操作的是int fd,只有底层草组函数,如write, read, lseek等,但这些函数更加灵活,不像fopen系列,没有更多的限制
因此,open系列函数更适合底层、对二进制文件的操作,而fopen系列适合对文本文件的格式化操作。举例来说:
,fopen函数提供的打开方式有r,w,a,当采用w打开文件时,如果文件存在,会将文件清空,否则创建一个文件,但有时不像清空文件,所以只能用a操作,而a操作的限制是,无法使用fseek随机写文件,也就是说,以a打开文件后只能采用追加写的方式;而open则提供了更为细致的flag设置,可以实现上面功能
,open系列没有提供格式化操作功能,如果文件中存在以\t分隔的几行数据,则无法一下读出,且读出后还要自己做类型转换。而用fscanf就不必,可以使用fscanf(file, "%s\t%d\n%s\t%u", s1, &i, s2, &u); 如果成功返回值为4(解析出的项数),否则返回-1
分享到:
相关推荐
在本项目中,我们通过C语言实现了一个基础的操作系统文件管理系统,这为我们提供了理解和学习操作系统工作原理的一个实践平台。 文件管理系统是操作系统的重要组件,它的主要任务包括文件的创建、删除、打开、关闭...
c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件...
在Linux系统中,C语言作为底层编程的主要工具,其对配置文件的操作往往涉及到繁琐的文件I/O操作。然而,为了简化这一过程,开发者通常会利用特定的库来处理配置文件,比如读取、写入、解析键值对等。本文将深入探讨...
c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 ...
getc和fgetc函数是C语言中用于从文件中读取字符的函数,格式为:getc(文件指针)或fgetc(文件指针)。例如:ch=getc(fp);表示从文件指针fp所指向的文件中读取一个字符。 4. 文件写入函数:putc和fputc函数 putc和...
c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件...
切换目录、创建文件、删除文件、写入内容、重写内容、创建目录、删除目录、显示当前目录下所有子目录和子文件、查找文本内容、复制文件、复制子目录和文件、导入文件、导出文件、显示文件内容、保存磁盘数据、帮助...
例如,我们可以使用`fgets()`从文件中读取一行字符,然后用`fputs()`将内容输出到另一个文件或控制台。对于单个字符的读写,有`getchar()`和`putchar()`函数。 字符串的读入和写出是文件操作中的常见任务。`fgets()...
接下来,我们将讨论C语言中的文件操作,这是进行I/O(输入/输出)操作的基础。在哈工大的课件中,这部分内容可能包括: 1. 文件的基本概念:理解文件的类型,如文本文件和二进制文件。 2. 文件打开与关闭:掌握...
此外,如果CSV文件中存在包含逗号的字段(如逗号引号包围的文本),则需要更复杂的解析逻辑,可能需要用到正则表达式库或第三方CSV解析库。 在提供的`ReadCSVFile`源码中,作者可能已经封装了这些功能,包括对复杂...
在C语言中,读取和写入`.dat`文件是一项基本操作,通常用于存储和检索非结构化的数据。`.dat`文件本身并没有特定的格式,它只是一个二进制或文本文件,可以按照开发者的需求来组织数据。下面我们将深入探讨如何在...
c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码c语言文件读写操作代码
本文件包提供了C语言操作XML文件的相关源码和说明文档,旨在帮助开发者了解和实现XML的读取、解析、修改和生成。 XML是一种结构化数据表示方式,常用于存储和传输数据。其主要特点是自描述性,即每个XML文档都包含...
Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写...
例如,在上面的代码中,我们使用main()函数作为程序入口,使用while()循环来读取文件中的字符,并使用if()语句来判断字符是否满足特定的条件。 5. 文件系统 在C语言中,文件系统是通过文件系统函数实现的。例如,...
详细介绍了C语言的文件部分 有助于学习C语言中文件的相关操作
总的来说,这个项目涵盖了C语言编程、网络编程、文件操作和多线程等多个核心概念,对于学习和实践这些技术是非常有价值的。通过这个项目,你可以深入理解网络通信的基本原理,以及如何用C语言来实现这些功能。
C语言文件操作实例,初学习C语言的好例子.
很多人c语言学习的挺好了,但是关于文件相关的操作却很薄弱,以及文件系统也不熟悉,相信学了基本的文件操作,对于文件系统也会有所熟悉认识