C语言 第13章_文件操作PPT课件
合集下载
C语言课件系列PPT课件
5.文件类型FILE
系统给每个打开的文件都在内存中开辟一个区域,用 于存放文件的有关信息(如文件名、文件位置等)。这些 信息保存在一个结构类型变量中,该结构类型由系统定义、 取名为FILE。
注意:结构类型名“FILE”必须大写。
.
4
6.ANSI C的缓冲文件系统
所谓缓冲文件系统是指,系统自动地在内存区为每 个正在使用的文件开辟一个缓冲区。
.
9
2)标准输出文件——stdout:指向终端输出(一般为 显示器)。
3)标准错误文件——stderr:指向终端标准错误输出 (一般为显示器)。
13.2.2 文件的关闭──fcolse()函数 1.用法: int fclose(FILE *文件指针); 2.功能:关闭“文件指针”所指向的文件。如果正 常关闭了文件,则函数返回值为0;否则,返回值为非0。
/*复制源文件到目标文件中*/
for( ; (!feof(input)) ; ) fputc(fgetc(input),output);
fclose(input); fclose(output);
/*关闭源文件和目标文件*/
}
[程序演示]
.
19
库函数feof(): 1)用法:int feof(文件指针); 2)功能:在执行读文件操作时,如果遇到文件尾, 则函数返回逻辑真(1);否则,则返回逻辑假(0)。 feof()函数同时适用于ASCII码文件和二进制文件。 例如,!feof(input))表示源文件(用于输入)未结束, 循环继续。
{ printf("can not open source file\n");
exit(0);
}
if ((fp=fopen(argv[2],"w"))==NULL) /*创建目标文件失败*/
《c语言文件操作》课件
2 已知的问题和未来
的发展趋势
已知的问题包括文件操 作时的错误处理和异常 处理,未来的发展趋势 可能涉及更高效的文件 存储和访问方式。
3 后续学习建议
为了更深入地理解文件 操作,建议学习相关的 操作系统和计算机网络 知识。
通过使用文件删除函数,我 们可以从计算机上删除不再 需要的文件。
修改文件
通过使用文件修改函数,我 们可以更改文件的内容、属 性或名称。
目录和路径操作
1 目录的概念和分类
目录是文件在计算机文件系统中的组织方式,可以按照层次结构进行分类。
2 目录操作函数
通过使用目录操作函数,我们可以创建、删除和管理文件系统中的目录。
《c语言文件操作》PPT课 件
这个《c语言文件操作》PPT课件将介绍文件的概念、读写操作、创建和删除 操作、目录和路径操作、随机文件读写、文件访问控制、应用场景、实例操 作演示以及总结与展望。
文件的概念和分类
文件的概念
文件是存储在计算机上的数据集合,可以是文本文件、二进制文件或其他形式的文件。
文件的分类
通过使用文件操作函数,我 们可以读取并输出本地文件 夹下的所有文件名。
按行读取文本文件内容
通过使用文件读取函数,我 们可以按行读取文本文件内 容并进行相应的处理。
Байду номын сангаас
二进制文件读写操作
通过使用二进制读写函数, 我们可以对二进制文件进行 读取和写入操作。
总结与展望
1 C语言文件操作的
优点和不足
文件操作是C语言中重 要的编程技术,具有访 问数据的灵活性,但也 需要注意数据安全和文 件管理的问题。
文件可以按照其内容和用途进行分类,例如文本文件、图像文件、音频文件和视频文件等。
《c语言程序设计教学资料》第13章---文件操作
存中
buffer读入数据的起始地址, size数据块大小,最多允许读取
的数据块的个数,返回值是实际督导的数据开个数
unsigned int fwrite(const viod *buffer,unsinged int size,
unsinged int count,FILE * fp);
功能:将buffer指向的内存中的数据块写入fp所指的文件中
27
ppt课件
28
ppt课件
29
ppt课件
30
ppt课件
31
ppt课件
32
按数据块读写文件
一般调用方式为:
unsigned int fread (viod *buffer,unsinged int size,unsinged
int count,FILE * fp);
功能:从fp所指的文件中读取数据块并存储到buffer指向的内
ppt课件
3
In the previous,从终端的键盘输入数据,运行结果输出 到终端显示器上。数据的存储在计算机内存中,当程序 结束,内存的中数据就会丢失。
常常需要将一些数据保存到光盘、磁盘等外存储器上, 达到重复使用,永久保存数据的目的。
ppt课件
4
ppt课件
5
二进制文件和文本文件
C语言文件有两种形式: (1)文本文件(也称ASCII码文件) (2)二进制文件
19
ppt课件
20
ppt课件
21
读写一个字符串的函数
函数名 调用形式
功能
返回值
fgets fputs
从fp指向的文件 读 成 功 , 返 回
fgets(str,n,fp)
C语言文件ppt..
图 8-1 数据在文本文件和二进制文件中的存储区别
8.1 文件概述
文件的分类
根据文件的存取方式,数据文件可分为顺序文件和随机文件。 (1)顺序存取只能依先后次序存取文件中的数据,存取完
第一字节,才能存取第二字节;存取完第n-1字节,才能存取第n 字节。
(2)随机存取也称直接存取,可以直接存取文件中指定的 数据,例如,可以直接存取指定的第i个字节(或字符),而不 管第i-1字节是否已经存取。
if ( ( fp = fopen (file, model) ) == NULL ) { printf ("Cannot open file of %s.\n",file); exit (0); }
else return fp; }
8.2 文件的打开与关闭
8.2.2 文件的关闭
fclose()函数
在以上述方式打开文件时,如果出现“打开”错误, fopen()函数返回空指针值,程序就显示以下信息:
cannot open this file ! 并退出当前的调用过程。
为了以后方便打开文件并且判断是否正确打开文件,可 将以上过程定义成函数,打开文件时调用该函数即可。
FILE *fopenfun(char *file,char *model) { FILE *fp;
ch= fgetc ( fp ) ; 函数功能:
从指定的文件中读取一个字符到变量ch中。 返 回 值: 如读取成功,返回读取的字符,如果在执行fgetc函数
② r方式,只能用于从文本文件中读数据。若指定的文件不存在,则出 现错误信息。文件打开时,文件位置指针指向文件开头。
③ a方式,用于向文件末尾添加数据。若指定的文件存在,将它打开, 并将文件位置指针指向文件末尾,新写入的内容被追加在原有数据之后; 若指定的文件不存在,则创建该文件,这时文件位置指针指向的既是文件 头,也是文件尾。
第13章 文件操作
返回值为指向此文件的指针
如果打开失败(文件损坏或不存在),返回值为NULL
Tips: 为什么要返回文件指针(句柄,handle)呢?
– 以后关闭文件时要使用 – 因FILE结构较大,传回这个结构的首地址的效率比传回
整个结构效率高
C语言程序设计
22/52
13.2文件的关闭
第13章 文件操作
格式:int fclose(FILE *fp);
字节不一定表示字符,无需ASCII码表与字符变换读写速度快 按照数据在内存中的存储形式(二进制)存储到文件
缺点Βιβλιοθήκη 不易阅读,妨碍调试过程尤其注意可移植性问题:
二进制文件与不同类型的计算机及其存储数据方式相关。
存储int型2字节,4字节?先存高位字节,低位字节?与机器字长、对齐方
C语言程序设计 式alignment以及big-endian / little-endian等相关。
C语言程序设计
23/52
13.2文件的关闭
第13章 文件操作
注意tips:文件用完一定要关闭。
否则,可能引起数据丢失 甚至影响其他文件的打开
多数情况下,系统限制同时打开状态的文件总数。 因此,打开文件前先关闭无用文件是必要的。
C语言程序设计
24/52
13.2文件的打开和关闭
FILE *fopen(const char *filename, const char *mode);
,定义有关文件操作的信息,用户绝对不应修改
C语言程序设计
18/52
第13章 文件操作
文件指针(File Pointer)
文件指针类型在stdio.h中定义
typedef struct
/*在stdio.h文件中定义*/
如果打开失败(文件损坏或不存在),返回值为NULL
Tips: 为什么要返回文件指针(句柄,handle)呢?
– 以后关闭文件时要使用 – 因FILE结构较大,传回这个结构的首地址的效率比传回
整个结构效率高
C语言程序设计
22/52
13.2文件的关闭
第13章 文件操作
格式:int fclose(FILE *fp);
字节不一定表示字符,无需ASCII码表与字符变换读写速度快 按照数据在内存中的存储形式(二进制)存储到文件
缺点Βιβλιοθήκη 不易阅读,妨碍调试过程尤其注意可移植性问题:
二进制文件与不同类型的计算机及其存储数据方式相关。
存储int型2字节,4字节?先存高位字节,低位字节?与机器字长、对齐方
C语言程序设计 式alignment以及big-endian / little-endian等相关。
C语言程序设计
23/52
13.2文件的关闭
第13章 文件操作
注意tips:文件用完一定要关闭。
否则,可能引起数据丢失 甚至影响其他文件的打开
多数情况下,系统限制同时打开状态的文件总数。 因此,打开文件前先关闭无用文件是必要的。
C语言程序设计
24/52
13.2文件的打开和关闭
FILE *fopen(const char *filename, const char *mode);
,定义有关文件操作的信息,用户绝对不应修改
C语言程序设计
18/52
第13章 文件操作
文件指针(File Pointer)
文件指针类型在stdio.h中定义
typedef struct
/*在stdio.h文件中定义*/
c语言从入门到精通__第13章
13.1.1 文件类型
例如,对于整数12345,在文本文件中存放时,数字“1”,“2”, “3”,“4”,“5”都以字符的形式各占一个字节,每个字节中存 放的是这些字符的ASCII值,所以要占用5个字节的存储空间;而 在二进制文件中存放时,因为是整型数据所以系统分配两个字节 的存储空间,也就是说,整数12345在二进制文件中占用两个字 节。其存放形式如下图: 在文本文件中存储形式:
13.1.2 C如何操作文件——文件指针
在C语言中所有对文件的操作都通过文件指针完成。 我们在前面已经学习过变量的指针,变量的指针指 向该变量的存储空间;但文件的指针不是指向一段 内存空间,而是指向描述有关这个文件的相关信息 的一个文件信息结构体,该结构体定义在stdio.h 头文件中,当然,用户也无需了解有关此结构体的 细节,只要知道如何使用文件指针就可以了,和普 通指针一样,文件指针在使用之前,也必须先进行 声明。
fclose(fp); /*fp是指向要关闭的文件的文件指针*/
13.2.2 文件的关闭——fclose()函数
技 巧:因为保持一个文件的打开状态需要 占用内存空间,所以对文件的操作一般应该 遵循“晚打开,早关闭”的原则,避免无谓 的浪费。
13.2.3 文件结束检测——feof()函数
feof()函数用于检测文件是否结束,既适用 于二进制文件,也适用于文本文件。其一般 使用格式如下:
第13章
文件
文件概述 文件的打开和关闭 文件的顺序读写 文件的随机读写 综合应用——文件操作 跟我上机
第13章
文件
文件概述 文件的打开和关闭 文件的顺序读写 文件的随机读写 综合应用——文件操作概述 文件的打开和关闭 文件的顺序读写 文件的随机读写 综合应用——文件操作 跟我上机
最新C语言程序设计-2-第13章-文件和IO函数ppt课件
3). 用“w”方式写入时应注意的事项 用“w”方式写入时,只能向该文件写入。若打开的文件不存 在,则以指定的文件名建立该文件;若打开的文件已经存在,则 先将该文件原来的内容删除,然后重建一个新文件。
4). 附加时应注意的事项 若要不破坏一个已存在的文件现有的信息,又要增加新的信 息,可以用“a”方式附加。但此时该文件必须是存在的,否则将 会出错。用此方式打开文件时,位置指针在文件末尾。
关闭文件就是使文件指针变量不再指向该文件,通俗地说, 就是让文件指针与文件“脱钩”。当然,文件关闭后就不能再用 文件指针变量对文件进行读写操作了。要再进行读写操作,就应 再次打开它。
当文件使用完毕后,及时关闭文件是一个优秀程序员必须养 成的良好习惯。它不仅可以释放内存,而更重要地是,保证了文 件中数据的安全。
6). 文件进制的转换 把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII 码,因此文本文件的读写要花费较多的转换时间。对二进制文件 的读写不存在这种转换。 7). 标准I/O 标准输入文件(键盘),标准输出文件(显示器),标准出错输出 (出错信息)是由系统打开的,无需用户处理,可直接使用。
ch=fgetc(fp);
则从打开的文件fp中读取一个字符并送入ch中。如果在读操 作中遇到文件结束符,则返回文件结束标记EOF。EOF的值为-1。
【例13-1】(见课本) 对于文本文件而言,ASCII码不可能是-1。但是,对于二进 制文件而言,数据可能是-1。若还使用上述方法判断文件的结束, 则可能会出现“假结束”。为此,应采用feof()函数。feof()可以 用来测试文件是否结束。若结束,则返回值为1(逻辑真),否则为 0(逻辑假)。 这种方法也可用于文本文件,具有更广泛的适用性。则上一 例子可以改为:
C语言程序设计教程ppt课件完整版pptx
C语言的应用领域
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。
《c语言文件操作》PPT课件
if((fp=fopen(filename,"w"))==NULL) {
printf("cannot open file\n"); exit(0); /*终止程序*/} ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */ ch=getchar( ); /* 接收输入的第一个字符 */ w运h行ile情(c况h!如='下#'{:
§13.1 C文件的有关概念
13.1.6 文件的位置指针
位置指针用来指示当前的读写位置。 一般情况下,在对字符文件进行顺序读写时,文件的位置指针指向 文件开头,这时如果对文件进行读的操作,就读第一个字符,然后 文件的位置指针顺序向后移一个位置,在下一次执行读的操作时, 就将指针指向的第二个字符读入。依此类推,直到遇文件尾.
§13.1 C文件的有关概念
13.1.4 文件缓冲区
ANSI C标准采用“缓冲文件系统”处理文件. 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据必须先送到内存中的缓冲 区,装满缓冲区冲区
文件
strcpy(str[k], strcpy(str[i],str[k]);
例} 13t.em2p);}将一个磁盘文件中的信息复制到另一个磁 if(盘(fp文=fo件pe中n("D。:\\CC\\temp\\string.dat","w"))==NULL) {
gets(str[i]); for(i=0;i<n-1;i++) {k=i;
for( j=i+1;j<n;j++) if(strcmp(str[k],str[j])>0) k=j;
printf("cannot open file\n"); exit(0); /*终止程序*/} ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */ ch=getchar( ); /* 接收输入的第一个字符 */ w运h行ile情(c况h!如='下#'{:
§13.1 C文件的有关概念
13.1.6 文件的位置指针
位置指针用来指示当前的读写位置。 一般情况下,在对字符文件进行顺序读写时,文件的位置指针指向 文件开头,这时如果对文件进行读的操作,就读第一个字符,然后 文件的位置指针顺序向后移一个位置,在下一次执行读的操作时, 就将指针指向的第二个字符读入。依此类推,直到遇文件尾.
§13.1 C文件的有关概念
13.1.4 文件缓冲区
ANSI C标准采用“缓冲文件系统”处理文件. 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据必须先送到内存中的缓冲 区,装满缓冲区冲区
文件
strcpy(str[k], strcpy(str[i],str[k]);
例} 13t.em2p);}将一个磁盘文件中的信息复制到另一个磁 if(盘(fp文=fo件pe中n("D。:\\CC\\temp\\string.dat","w"))==NULL) {
gets(str[i]); for(i=0;i<n-1;i++) {k=i;
for( j=i+1;j<n;j++) if(strcmp(str[k],str[j])>0) k=j;
C语言的文件操作
{puts(“cannot open file out.txt!\n”);exit(0);} while( fgets(string,80,fp)!= NULL) printf(“%s\n”,string); fclose(fp); }
❖结论:结果与我们输入的一样。同时也就吾出前面在写文件时,为何在每 个数据项后加上换行符。 ❖思考题: 如果写文件时,每个数据项用其它方法隔离,在读取数据时, 又如何分离各数据项?请你设计一种算法并上机验证。
过相应的编码存储在文件中。目前常用的编码是ASCII码,它用一个字节来对这 些字符进行编码。 (2) 二进制文件 二进制文件是指数据按存储原样组成的文件。前面提到的tc.exe就是一个二进制文 件。
1 C文件的基本知识(续)
▪ 3 文件的两种处理方式
(1)缓冲文件系统又称为标准文件系统或高层文件系统,是目前常用的
C语言的文件操作
文件
▪ 1 C文件的基本知识 ▪ 2 文件的打开和关闭 ▪ 3 文件的读写 ▪ 4 文件的定位与随机读写 ▪ 5 非缓冲文件系统* ▪ 6 文件的综合应用
1 C文件的基本知识
▪ 1. 文件与文件名 文件是指存储在外部介质上的数据集合。为标识一个文件,每个文件都必须有一个
文件名,一般形式为:文件名.[扩展名]. ▪ 2 文件分类 (1) 文本文件 文本文件是指由字符组成的文件。字符可以是字母、数字、运算符等,每个字符通
1.写字符函数fputc(char c, FILE *fp) (1) 功能: 将字符c的内容写入文件指针fp所指文件位置。 (2) 打开文件的方式必须是带“w”或“w+”的。顺序写总是从文 件首部开始,随机写则从文件中指定位置开始写,写完一个字符, 文件指针下移一个字节的位置。
❖结论:结果与我们输入的一样。同时也就吾出前面在写文件时,为何在每 个数据项后加上换行符。 ❖思考题: 如果写文件时,每个数据项用其它方法隔离,在读取数据时, 又如何分离各数据项?请你设计一种算法并上机验证。
过相应的编码存储在文件中。目前常用的编码是ASCII码,它用一个字节来对这 些字符进行编码。 (2) 二进制文件 二进制文件是指数据按存储原样组成的文件。前面提到的tc.exe就是一个二进制文 件。
1 C文件的基本知识(续)
▪ 3 文件的两种处理方式
(1)缓冲文件系统又称为标准文件系统或高层文件系统,是目前常用的
C语言的文件操作
文件
▪ 1 C文件的基本知识 ▪ 2 文件的打开和关闭 ▪ 3 文件的读写 ▪ 4 文件的定位与随机读写 ▪ 5 非缓冲文件系统* ▪ 6 文件的综合应用
1 C文件的基本知识
▪ 1. 文件与文件名 文件是指存储在外部介质上的数据集合。为标识一个文件,每个文件都必须有一个
文件名,一般形式为:文件名.[扩展名]. ▪ 2 文件分类 (1) 文本文件 文本文件是指由字符组成的文件。字符可以是字母、数字、运算符等,每个字符通
1.写字符函数fputc(char c, FILE *fp) (1) 功能: 将字符c的内容写入文件指针fp所指文件位置。 (2) 打开文件的方式必须是带“w”或“w+”的。顺序写总是从文 件首部开始,随机写则从文件中指定位置开始写,写完一个字符, 文件指针下移一个字节的位置。
c语言课件PPT课件
写入文件
使用fprintf函数将数据写入文件 中,按照指定的格式写入。
格式化输入输出
fscanf和fprintf函数支持格式化 输入输出,方便数据的读写。
文件的定位操作(fseek和ftell函数)
1 2
定位文件指针
使用fseek函数将文件指针移动到指定位置。
获取当前文件指针位置
使用ftell函数获取当前文件指针的位置。
先执行一次代码块,然后当条件满足时重复执行。
goto语句
无条件跳转到程序中的指定位置。
示例
使用do-while循环和goto语句实现一个简单的菜单选择系统。
04 函数和宏定义
函数的定义和调用
总结词
函数的定义和调用是C语言中非常重要的概念,它们允许我们将代码块组织在 一起,并在需要时多次调用它。
详细描述
VS
详细描述
宏定义使用`#define`指令来定义常量、 宏函数或条件编译指令。宏定义在预处理 阶段被替换为相应的值或代码块。文件包 含指令使用`#include`来包含其他文件的 内容,通常用于引入库的头文件或共享代 码。这些预处理指令可以帮助我们减少代 码重复和提高代码的可维护性。
05 数组和字符串
结合性是指相同优先级的运算符在表 达式中的结合方向,决定了运算符的 执行顺序。
03 控制结构
if语句和条件运算符
01
02
03
if语句
用于根据条件执行不同的 代码块。
条件运算符
也称为三目运算符,用于 简化if-else语句。
示例
判断一个数是否为正数、 负数或零。
switch语句和枚举类型
switch语句
字符串函数
C语言提供了一系列字符串函数,用于 对字符串进行操作,如连接、比较、 查找等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
件能生成和使用这些类型的文件
不公开或加密的文件格式 – 如Microsoft Word的doc格式就不公开,所以至今没有
Word以外的其他软件能完美地读出doc文件
2021/3/21
13/41
缓冲型和非缓冲型文件系统
缓冲型文件系统
– 指系统自动在内存中为每一个正在使用的文件开辟一个
缓冲区,在读写文件时,数据先送到缓冲区,再传给C 程序或外存上
输出设备 –显示器、打印机 –软盘、硬盘、 CD/DVD-RW (以文件的形式) –音箱 –……
单纯的输入设备或者单纯的输出设备越来越少
2021/3/21
4/41
标准输入/输出
字符界面的操作系统一般都提供标准输入与输出 设备
– DOS、Linux、UNIX…… 一般情况,标准输入就是键盘,标准输出就是终 端显示器
}
输入重定向 – prog < in
输出重定向 – prog > out
2021/3/21
6/41
流(Stream)
计算机中的流的概念
–一般称为数据流,也叫做字节流、比特流
(文件流), Video stream(视频流) and Audio stream(音频流)in specific field.
第13章 文件操作
本章学习内容
二进制文件和文本文件 文件的打开和关闭 文件的顺序读写与随机读写 标准输入输出及其重定向
2021/3/21
2/41
Von J. Neumann Architecture
Where to put data in computer? How to input or output data?
– 操作系统有能力重定向标准输入与输出,比如让文件
作为标准输入(标准输出)
– 这种重定向程序本身是感觉不到的
自来水厂
2021/3/21
5/41
DOS下的标准输入/输出重定向
程序prog如下 – main()
{ char c; while ((c=getchar()) != '\n') putchar(++c);
记忆装置 (Memory)
程序 和输入数据
取出数据
输出结果
输入/输出 设备
计算结果
存储器 存入数据
运算器
输入输出
取出
命令 和耳朵 (I/O devices)
2021/3/21
控制器
CPU
大脑
3/41
I/O设备
输入设备
– 键盘、鼠标 – 软盘、硬盘、光驱(以文件的形式) – 扫描仪、视频采集卡、电视卡、游戏杆、话筒 –……
14/41
13.2文件的打开和关闭
下面介绍的函数均定义在<stdio.h>中
FILE *fopen(const char *, const char *mode);
– FILE *fp = fopen("C:\\CONFIG.SYS", "rw");
是文件名
– 包含路径。如果不含路径,表示打开当前目录下的文件
–可以倒流的数据流
如果你想重新读已经读过的数据,或者要修改已经写入的数 据,可以发出流控(Flow Control)命令
–不会倒流的数据流也很多
网络上的数据流。网络和数据线等介质只有很小的数据缓冲 区,没有大量存储的能力
流的载体?
–磁盘文件、终端显示器或打印机、存储器等
2021/3/21
7/41
外存
–因为流与设备无关,所以能写入磁盘文件的同一
函数也能写入另一设备,如控制台终端等
文件的能力则不同 –如磁盘文件支持随机存取,而键盘则不能
2021/3/21
10/41
文件的存放(Storage)
可以建立若干文件目录 (directory\folder文件夹)
在目录里保存文件 同一级目录里保存的文件不能同名
Backup main.c
E:
11/41
13.1二进制文件和文本文件
文件的类型(Type of Files)? 二进制文件
如果存1234呢?
– 是一种字节序列,没有字符变换
– 按照数据在内存中的存储形式(二进制)存储到文件
如整数123,在内存占2个字节,则文件中也占2个字节
文本文件/ASCII码文件
对使用者而言,只要知道文件的路 径(path, 全目录)和文件名,就能使 用该文件
C:\home\Sunner\main.c 这都是托OS的福
2021/3/21
A: C: D:
home Sunner Secrets getnum.h getnum.c main.c 苏小红
Software TC20 WinZip
mode是打开方式
– 常用为"r"、"w"、"rw"和"a",分别表示只读、只写、读写和添加 – "rb"表示只读二进制文件
– 是一种字符序列,文件中存储每个字符的ASCII码
如整数123在文件中占3个字节,分别存放这3个字符的ASCII码
2021/3/21
12/41
文件的格式(Format of Files)
数据必须按照存入的类型读出,才能恢复其本来 面貌 公开的标准格式
– 如bmp、tif、gif、jpg和mp3等类型的文件,有大量软
机……
程序中的文件 –在程序运行时由程序在磁盘上建立一个文件,通过写操
作将数据存入该文件
–由程序打开磁盘上的某个已有文件,并通过读操作将文
件中的数据读入内存供程序使用
2021/3/21
9/41
文件(Files)与流 (Streams)
程序通过文件打开操作把流与设备联系起来, 文件打开后,可在程序和文件之间交换数据 程序通过文件关闭操作断开流与文件的联系 所有流的性质都一样
内存容易健忘,所以数据必须保存在“不健忘”的外 存上
– 磁盘(Magnetic disks) – 光盘(CD、DVD) – U盘(Flash Memory)......
容量大、断电后数据不丢失,可重复使用,永久保存
–一般都以文件的形式给用户及应用程序使用
2021/3/21
8/41
文件(File)
文件 –一般指存储在外部介质上有名字的一组相关数据的集合 –用文件可长期保存数据,实现数据共享 –在C语言中,文件可泛指磁盘文件、终端显示器或打印
– 缓冲文件系统利用文件指针标识文件
– 缓冲型文件系统中的文件操作,也称高级文件操作
– 高级文件操作函数是ANSI C定义的文件操作函数,具
有跨平台和可移植的能力
非缓冲文件系统
– 不会自动设置文件缓冲区,缓冲区需由程序员自己设定
– 非缓冲文件系统没有文件指针,它使用称为文件号的整
数来标识文件
2021/3/21
不公开或加密的文件格式 – 如Microsoft Word的doc格式就不公开,所以至今没有
Word以外的其他软件能完美地读出doc文件
2021/3/21
13/41
缓冲型和非缓冲型文件系统
缓冲型文件系统
– 指系统自动在内存中为每一个正在使用的文件开辟一个
缓冲区,在读写文件时,数据先送到缓冲区,再传给C 程序或外存上
输出设备 –显示器、打印机 –软盘、硬盘、 CD/DVD-RW (以文件的形式) –音箱 –……
单纯的输入设备或者单纯的输出设备越来越少
2021/3/21
4/41
标准输入/输出
字符界面的操作系统一般都提供标准输入与输出 设备
– DOS、Linux、UNIX…… 一般情况,标准输入就是键盘,标准输出就是终 端显示器
}
输入重定向 – prog < in
输出重定向 – prog > out
2021/3/21
6/41
流(Stream)
计算机中的流的概念
–一般称为数据流,也叫做字节流、比特流
(文件流), Video stream(视频流) and Audio stream(音频流)in specific field.
第13章 文件操作
本章学习内容
二进制文件和文本文件 文件的打开和关闭 文件的顺序读写与随机读写 标准输入输出及其重定向
2021/3/21
2/41
Von J. Neumann Architecture
Where to put data in computer? How to input or output data?
– 操作系统有能力重定向标准输入与输出,比如让文件
作为标准输入(标准输出)
– 这种重定向程序本身是感觉不到的
自来水厂
2021/3/21
5/41
DOS下的标准输入/输出重定向
程序prog如下 – main()
{ char c; while ((c=getchar()) != '\n') putchar(++c);
记忆装置 (Memory)
程序 和输入数据
取出数据
输出结果
输入/输出 设备
计算结果
存储器 存入数据
运算器
输入输出
取出
命令 和耳朵 (I/O devices)
2021/3/21
控制器
CPU
大脑
3/41
I/O设备
输入设备
– 键盘、鼠标 – 软盘、硬盘、光驱(以文件的形式) – 扫描仪、视频采集卡、电视卡、游戏杆、话筒 –……
14/41
13.2文件的打开和关闭
下面介绍的函数均定义在<stdio.h>中
FILE *fopen(const char *, const char *mode);
– FILE *fp = fopen("C:\\CONFIG.SYS", "rw");
是文件名
– 包含路径。如果不含路径,表示打开当前目录下的文件
–可以倒流的数据流
如果你想重新读已经读过的数据,或者要修改已经写入的数 据,可以发出流控(Flow Control)命令
–不会倒流的数据流也很多
网络上的数据流。网络和数据线等介质只有很小的数据缓冲 区,没有大量存储的能力
流的载体?
–磁盘文件、终端显示器或打印机、存储器等
2021/3/21
7/41
外存
–因为流与设备无关,所以能写入磁盘文件的同一
函数也能写入另一设备,如控制台终端等
文件的能力则不同 –如磁盘文件支持随机存取,而键盘则不能
2021/3/21
10/41
文件的存放(Storage)
可以建立若干文件目录 (directory\folder文件夹)
在目录里保存文件 同一级目录里保存的文件不能同名
Backup main.c
E:
11/41
13.1二进制文件和文本文件
文件的类型(Type of Files)? 二进制文件
如果存1234呢?
– 是一种字节序列,没有字符变换
– 按照数据在内存中的存储形式(二进制)存储到文件
如整数123,在内存占2个字节,则文件中也占2个字节
文本文件/ASCII码文件
对使用者而言,只要知道文件的路 径(path, 全目录)和文件名,就能使 用该文件
C:\home\Sunner\main.c 这都是托OS的福
2021/3/21
A: C: D:
home Sunner Secrets getnum.h getnum.c main.c 苏小红
Software TC20 WinZip
mode是打开方式
– 常用为"r"、"w"、"rw"和"a",分别表示只读、只写、读写和添加 – "rb"表示只读二进制文件
– 是一种字符序列,文件中存储每个字符的ASCII码
如整数123在文件中占3个字节,分别存放这3个字符的ASCII码
2021/3/21
12/41
文件的格式(Format of Files)
数据必须按照存入的类型读出,才能恢复其本来 面貌 公开的标准格式
– 如bmp、tif、gif、jpg和mp3等类型的文件,有大量软
机……
程序中的文件 –在程序运行时由程序在磁盘上建立一个文件,通过写操
作将数据存入该文件
–由程序打开磁盘上的某个已有文件,并通过读操作将文
件中的数据读入内存供程序使用
2021/3/21
9/41
文件(Files)与流 (Streams)
程序通过文件打开操作把流与设备联系起来, 文件打开后,可在程序和文件之间交换数据 程序通过文件关闭操作断开流与文件的联系 所有流的性质都一样
内存容易健忘,所以数据必须保存在“不健忘”的外 存上
– 磁盘(Magnetic disks) – 光盘(CD、DVD) – U盘(Flash Memory)......
容量大、断电后数据不丢失,可重复使用,永久保存
–一般都以文件的形式给用户及应用程序使用
2021/3/21
8/41
文件(File)
文件 –一般指存储在外部介质上有名字的一组相关数据的集合 –用文件可长期保存数据,实现数据共享 –在C语言中,文件可泛指磁盘文件、终端显示器或打印
– 缓冲文件系统利用文件指针标识文件
– 缓冲型文件系统中的文件操作,也称高级文件操作
– 高级文件操作函数是ANSI C定义的文件操作函数,具
有跨平台和可移植的能力
非缓冲文件系统
– 不会自动设置文件缓冲区,缓冲区需由程序员自己设定
– 非缓冲文件系统没有文件指针,它使用称为文件号的整
数来标识文件
2021/3/21