C语言二级辅导(文件操作ppt)
合集下载
C语言——File文件操作PPT课件
文件使exi用t(0方); 式:打开文件-->文件读/写-->关闭文件 系}统自动打开和关闭三个标准文件:
❖标准输入------键盘
stdin
例 FILE *fp;
❖标准输出------显示器
stdout
fp= fopen (“c
❖标准出错输出-----显文示件器使用方s式tderr
打开文件fopen “r/rb” (只读)
缓冲文件系统: 非缓冲文件系统:
程序 输入文件缓冲区
指令区
程序数据区 用a 户数据区
磁盘文件 磁盘
缓冲区输出文件缓冲区
§文件类型指针
文件结构体FILE
❖ 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区
❖文件信息用系统定义的名为FILE的结构体描述 ❖FILE定义在stdio.h中
typedef struct { int _fd; //文件号
开失败,为NULL “w+/wb+” (读写)
为读/写建立一个文本
“a+/ab+” (读写)
为读/写打开或建立一个文
文件关闭fclose
❖作用:使文件指针变量与文件“脱钩”,释放文件结构 体和文件指针
❖函数原型:int fclose(FILE *fp) ❖功能:关闭fp指向的文件 ❖返值:正常关文闭件为打0;出开错时时返,回非的0 文件类型指针
#define getchar( ) fgetc(stdin)
o.例h> 从键盘输入字符,逐个 #include <stdio.h>
存到磁盘文件中,直到 main()
out; 输入‘#“为止 [10],outfile[10];
nfile);
❖标准输入------键盘
stdin
例 FILE *fp;
❖标准输出------显示器
stdout
fp= fopen (“c
❖标准出错输出-----显文示件器使用方s式tderr
打开文件fopen “r/rb” (只读)
缓冲文件系统: 非缓冲文件系统:
程序 输入文件缓冲区
指令区
程序数据区 用a 户数据区
磁盘文件 磁盘
缓冲区输出文件缓冲区
§文件类型指针
文件结构体FILE
❖ 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区
❖文件信息用系统定义的名为FILE的结构体描述 ❖FILE定义在stdio.h中
typedef struct { int _fd; //文件号
开失败,为NULL “w+/wb+” (读写)
为读/写建立一个文本
“a+/ab+” (读写)
为读/写打开或建立一个文
文件关闭fclose
❖作用:使文件指针变量与文件“脱钩”,释放文件结构 体和文件指针
❖函数原型:int fclose(FILE *fp) ❖功能:关闭fp指向的文件 ❖返值:正常关文闭件为打0;出开错时时返,回非的0 文件类型指针
#define getchar( ) fgetc(stdin)
o.例h> 从键盘输入字符,逐个 #include <stdio.h>
存到磁盘文件中,直到 main()
out; 输入‘#“为止 [10],outfile[10];
nfile);
计算机二级考试C语言辅导PPT课件
A)C语言程序是由过程和函数组成的 B)C语言函数可以嵌套调用,例如:fun(fun(x)) C)C语言函数不可以单独编译 D)C语言中除了main函数,其他函数不可作为单独文件形式存在
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针 类型,无值类型void)及其定义方法。
2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,
else max = y; 4)复合语句:用{ }把多个语句括起来称为复合语句,又
称分程序
(1)while ( x < 0 )
{y = - x ; x ++ ; }
(2) if ( x > y )
{ t =x ; x = y; y = t;}
1)字符输入函数: putchar( ) (功能,参数及其类型,返回值及其类型) putchar(‘a’); putchar(‘\023’);putchar(‘\x1a’);putchar(30+35); char x; int y; float z; putchar(x); putchar(y); putchar(z);
一个结果
printf(“%d”,x++,x+6,x+=7); 6)条件运算符: (1)唯一的一个三目运算符(2)结合性(3)规则
( (w)?x++:y++ 找等价 表达式1的值非0或0)
1)赋值转换:以变量类型为准
int a ; a = 2.3;
float b; b=7; 2)计算时自动转换:低精度向高精度转换,特别的是单
s1=s1+f1(i); for(j=1;j<=10;j++)
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针 类型,无值类型void)及其定义方法。
2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,
else max = y; 4)复合语句:用{ }把多个语句括起来称为复合语句,又
称分程序
(1)while ( x < 0 )
{y = - x ; x ++ ; }
(2) if ( x > y )
{ t =x ; x = y; y = t;}
1)字符输入函数: putchar( ) (功能,参数及其类型,返回值及其类型) putchar(‘a’); putchar(‘\023’);putchar(‘\x1a’);putchar(30+35); char x; int y; float z; putchar(x); putchar(y); putchar(z);
一个结果
printf(“%d”,x++,x+6,x+=7); 6)条件运算符: (1)唯一的一个三目运算符(2)结合性(3)规则
( (w)?x++:y++ 找等价 表达式1的值非0或0)
1)赋值转换:以变量类型为准
int a ; a = 2.3;
float b; b=7; 2)计算时自动转换:低精度向高精度转换,特别的是单
s1=s1+f1(i); for(j=1;j<=10;j++)
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方式,用于向文件末尾添加数据。若指定的文件存在,将它打开, 并将文件位置指针指向文件末尾,新写入的内容被追加在原有数据之后; 若指定的文件不存在,则创建该文件,这时文件位置指针指向的既是文件 头,也是文件尾。
二级c语言培训.pptx
程序设计过程
1. 确定数据结构(输入输出) 2. 确定算法(解决问题的方法和步骤) 3. 编码。(算法代码化) 4. 调试程序。(改错和修正) 5. 整理和写文档。
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
第一章 程序设计基本概念
结构化程序的三种结构
1. 顺序结构(先后顺序执行) 2. 选择结构(执行不同分支的语句) 3. 循环结构(重复执行多次或一次不执
/*命令行,表示文件包含*/ /*主函数*/ /*输出信息*/
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
第二章 C程序设计的初步知识
C语言示例二
输入两个整数,输出它们的和。 程序名为sinree_c2.c。 #include <stdio.h> main() { int a,b,c;
实实在在学知识 顺顺利利过考试
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
如何学二级C语言
多看书 多实践验证 多读(背)程序
学C语言,就是学思考问题的过程和解决问题的能力。
Байду номын сангаас
实实在在学知识
顺顺利利过考试
第一章 程序设计基本概念
什么是C程序?
高级语言 源程序
编译程序
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
第二章 C程序设计的初步知识
C语言示例三
输入两个整数,通过调用函数计算它们的和,然后输出和值。
程序名为sinree_c3.c。
#include "stdio.h"
1. 确定数据结构(输入输出) 2. 确定算法(解决问题的方法和步骤) 3. 编码。(算法代码化) 4. 调试程序。(改错和修正) 5. 整理和写文档。
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
第一章 程序设计基本概念
结构化程序的三种结构
1. 顺序结构(先后顺序执行) 2. 选择结构(执行不同分支的语句) 3. 循环结构(重复执行多次或一次不执
/*命令行,表示文件包含*/ /*主函数*/ /*输出信息*/
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
第二章 C程序设计的初步知识
C语言示例二
输入两个整数,输出它们的和。 程序名为sinree_c2.c。 #include <stdio.h> main() { int a,b,c;
实实在在学知识 顺顺利利过考试
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
如何学二级C语言
多看书 多实践验证 多读(背)程序
学C语言,就是学思考问题的过程和解决问题的能力。
Байду номын сангаас
实实在在学知识
顺顺利利过考试
第一章 程序设计基本概念
什么是C程序?
高级语言 源程序
编译程序
学C语言,就是学思考问题的过程和解决问题的能力。
实实在在学知识
顺顺利利过考试
第二章 C程序设计的初步知识
C语言示例三
输入两个整数,通过调用函数计算它们的和,然后输出和值。
程序名为sinree_c3.c。
#include "stdio.h"
C语言全国计算机等级考试2级所有教程全面PPT课件
}
> 2021/2/23
15
格式特点
❖习惯用小写字母,大小写敏感 #include<stdio.h>
❖不使用行号,无程序行概念 ❖可使用空行和空格 ❖常用锯齿形书写格式
优秀程序员的素质之一:
mamina(in)( )
{ { ……………….
int…i ,…j ,…s…um…; …
sum=0…; ………..
模块组装成所要求的程序
2021/2/23
13
第2章 C程序设计的初步知识
❖ 2.1 认识C程序
❖ 例2.1 第一个程序 Hello,World!
/* example2.1 The first C Program*/
#include <stdio.h>
编译预处理
main()
函数
{ printf(“Hello,World!”); 语句
}
输出: Hello,World!
2021/2/23
注释
14
例2.2 求矩形的面积。
#include <stdio.ain program */
main()
语句
{ double a,b,area;
a=1.2;
b=3.6;
area=a*b;
printf(”area= %f\n",area);
第9章 数组 第10章 字符串 第11章 对函数的进一步讨论 第12章 作用域和存储类别 第13章 编译预处理和动态存储分配 第14章 结构体、共用体和用户定义类型 第15章 位运算 第16章 文件
2021/2/23
7
第1章 程序设计基本概念
1.1程序和程序设计 1.1.1C程序 连续执行的一条条指令的集合称为“程序”。计算机并不能直接识
C语言二级辅导(文件操作ppt)
int fprintf(FILE *fp, const char *format, ...); – fprintf(fp, "%d,%6.2f", i, t);
14
2012-9-6
C语言独特的文件访问
按数据块读写
unsigned fread(void *ptr, unsigned size, unsigned nmemb, FILE *fp); – 从fp读数据块到ptr – size是每个数据块的大小 – nmemb是最多允许写的数据块个数 – 返回实际读到的数据块个数 unsigned fwrite(const void *ptr, unsigned size, unsigned nmemb, FILE *fp); – 把ptr指向的数据块写入fp
2012-9-6
int fclose(FILE *fp);
10
文件指针(File Pointer)
FILE *fp ; – 是FILE型指针变量 – 标识一个特定的磁盘文件
typedef struct { short level; /*缓冲区‘满’或‘空’的程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如无缓冲区不读字符*/ short bsize; /*缓冲区的大小*/ unsigned char *buffer;/*数据缓冲区的位置*/ unsigned char *curp; /*指针当前的指向*/ unsigned istemp; /*临时文件指示器*/ short token; /*用于有效性检查*/ }FILE; 2012-9-6 在stdio.h文件中定义 11
C语言文件操作(2级考试)
#include "stdio.h" gets(地址表达式); #include "stdlib.h" fgets(地址表达式,最大长度,文件指针); //#include "string.h" void main() puts(地址表达式); { fputs(地址表达式,文件指针); FILE *fin,*fout; char lin[255]; //定义文件指针 fin=fopen("data.txt","r"); //打开输入文件 if(fin==NULL){ 无需'\n' puts("The file does not exist!");exit(0); } fout=fopen("datacopy.txt","w"); //建立输出文件并打开 fgets(lin,255,fin); //从文件读入一行 while(!feof(fin)){ //判断输入文件是否读完 //lin[strlen(lin)-1]='\0'; puts(lin); //在屏幕上显示所读行 fputs(lin,fout); //将所读行写入输出文件 fgets(lin,255,fin); //从文件读入一行 } fclose(fin); fclose(fout); //关闭 }
3. 标准文件指针 stdin、stdout、stderr
操作系统将外部设备(显示器、键盘、打印机等)视为一 个文件来管理,其中显示器和键盘视为标准文件,文件指针 名由系统定义。 显示器:标准输出文件,文件指针名为stdout。 显示器:标准出错输出文件,文件指针名为stderr。 (二个文件指针可指向同一个文件) 键盘:标准输入文件,文件指针名为stdin。 当程序开始运行,系统自动打开三个标准文件,这三个文件 指针和对应设备相关联。 当程序停止运行,系统自动关闭三个标准文件。 将键盘输入视为输入字节流。 将显示在屏幕的数据视为输出字节流。 putchar(c) 等价于fputc(c,stdout) getchar( )等价于fgetc(stdin) printf("%d",100) 等价于 fprintf(stdout,"%d",100) scanf("%f",&price) 等价于 fscanf(stdin,"%f",&price)
计算机二级C语言快速教程PPT
int add(int x,int y)
{ int z;
z=x+y;
语句
return(z);
}
<>
C程序设计
第一章 C语言概述
格式特点
❖习惯用小写字母,大小写敏感
main( ) {
❖不使用行号,无程序行概念
int i , j , sum;
❖可使用空行和空格
sum=0;
❖常用锯齿形书写格式
for(i=1; i<10;i++)
<>
C程序设计
预备知识
●十六进制与十进制之间的相互转换
1、十进制转换成十六进制:
整数部分:除16取余法、倒读。
[例8](3901)10=(F3D)16 练习:(1262)10=(4EE)16 思考:将十进制小数转换成十六进制的法则是什么?具体不
作要求
2、十六进制转换成十进制
法则:把十六进制数写成基数16按权展开的形式的多项式 [例9] (58)16=5×161+8×160=80+8=(88)10 [例10](1AB.C8=)11×6 162+10×161+11×160+12×16-1+8×16-2
<>
C程序设计
预备知识
2、二进制转换成十进制: [例3](1101)2=1×23+1×22+0×21+1×20
=8+4+0+1
=(13)10 [例4](10110.101)2 =1×24+0×23+1×22+1×21+0×20
+1×2-1+0×2-2+1×2-3
=16+0+4+2+0+0.5+0+0.125
计算机二级C语言教学ppt 共61页
逐条执行的指令序列 • C语言的特点包括:结构化的程序设计语言、
语句简洁、功能强大、移植性好
总结 2-2
• C程序编写完成后,首先需要通过编译转换 成目标文件,然后通过连接创建可执行程 序,最后才可以执行该程序
• 可以使用Visual C++ 6.0 IDE编辑和运行C 程序
• 程序的三大结构是1、顺序结构 2、选择结 构 3、循环结构
这种机器代码计算机可以理解 编译程序/解释机程器序代码
高级编程语言中的指令 计算机硬件
编译和执行C程序
C
源程序:是用户创建的文件,以“.c”为文件扩展名 源 保存 程 序
编译
目
标
文
头文件:含有函数的声明和
件
预处理语句,用于帮助访问
外部定义的函数。头文件的
扩展名为“.h”。
C语言函数库
目标文件:是编译器的输出结 果。这类文件的常见扩展名 为.obj” 0 1 形式
机识别和执行。
3、语句:组成程序的基本单位
1.1.__做__口__述__笔__记__…_…_ 23..2.____键____入____信____函____的__内__容__…… 4.3.__发__送__传__真__…_…__
1.口述
2.信函
3.传真
语句被逐条执行
程老序板 员
秘书
• 4.机器语言:(machine language)计算机直接使 用的二进制形式的程序语言或机器代码。
第一章 程序设计的基本概念
目标
• 了解C程序的一些基本概念 • 了解程序、算法和流程图的概念 • 了解C 程序的三大基本结构 • 掌握 C 程序的编译和运行过程 • 使用Visual C++ 6.0 创建 C程序
语句简洁、功能强大、移植性好
总结 2-2
• C程序编写完成后,首先需要通过编译转换 成目标文件,然后通过连接创建可执行程 序,最后才可以执行该程序
• 可以使用Visual C++ 6.0 IDE编辑和运行C 程序
• 程序的三大结构是1、顺序结构 2、选择结 构 3、循环结构
这种机器代码计算机可以理解 编译程序/解释机程器序代码
高级编程语言中的指令 计算机硬件
编译和执行C程序
C
源程序:是用户创建的文件,以“.c”为文件扩展名 源 保存 程 序
编译
目
标
文
头文件:含有函数的声明和
件
预处理语句,用于帮助访问
外部定义的函数。头文件的
扩展名为“.h”。
C语言函数库
目标文件:是编译器的输出结 果。这类文件的常见扩展名 为.obj” 0 1 形式
机识别和执行。
3、语句:组成程序的基本单位
1.1.__做__口__述__笔__记__…_…_ 23..2.____键____入____信____函____的__内__容__…… 4.3.__发__送__传__真__…_…__
1.口述
2.信函
3.传真
语句被逐条执行
程老序板 员
秘书
• 4.机器语言:(machine language)计算机直接使 用的二进制形式的程序语言或机器代码。
第一章 程序设计的基本概念
目标
• 了解C程序的一些基本概念 • 了解程序、算法和流程图的概念 • 了解C 程序的三大基本结构 • 掌握 C 程序的编译和运行过程 • 使用Visual C++ 6.0 创建 C程序
最新全国计算机等级考试二级C语言教程——第3章顺序结构资料PPT课件
建设法规
第五章 建筑法律制度(合同)
一、建设工程合同种类
(二)按承发包方式 1. 总承包(交钥匙) 2. 施工总承包 3. 管理总承包 4. 单位工程施工承包 5. 分包合同
建设法规
第五章 建筑法律制度(合同)
一、建设工程合同种类
(三)按工程计价 1. 固定价格 2. 可调价格 3. 成本加酬金
3.5 程序举例
7
MS Office 高级应用
Thank You !
建设法规
第五节 建设工程合同
第五章 建筑了解合同法的概念、订立的基本程序;熟 悉合同法的基本原则、基本形式与主要条款, 及合同订立当事人的权利、义务与违约责任 等方面的基本知识;掌握建设工程勘察设计 合同、建设工程施工合同、工程建设监理委 托合同的订立、履行与违约责任等方面的内 容。
勘察、设计合同具有建设工程合同的一 切法律特征。
第五章 建筑法律制度(合同)
二、建设工程勘察设计合同
建设法规
(一)勘察、设计合同的主要内容: 1. 工程概况,工程名称、地点、规模; 2. 发包人提供资料的内容、技术要求及期限; 3. 承包方勘察的范围、进度与质量,设计的阶段、
进度、质量和设计文件的份数及交付日期; 4. 勘察设计取费的依据、取费标准及拨付办法; 5. 双方当事人的权利与义务; 6. 违约责任; 7. 争议的解决方式等。
第五章 建筑法律制度(合同)
第五节 建设工程合同
建设法规
建设工程合同:是指建设单位(发包方)与 勘察、设计、建筑安装单位(承包方)依 据国家规定的基本建设程序和有关合同法 规,以完成建设工程为内容,明确双方的 权利与义务关系而签订的书面协议。
第五章 建筑法律制度(合同)
全国计算机二级考试C教程课件
用于从控制台读取数据。
gets函数
用于从控制台读取字符串。
02 程序控制结构
顺序结构
定义
顺序结构是指程序按照代码的先后顺 序执行,程序从上到下、从左到右依 次执行。
特点
顺序结构是最基本的程序结构,程序 按照代码的顺序执行,没有分支和循 环。
顺序结构
01
示例
02
```c
int main() {
03
指针基础
指针变量
指针变量用于存储内存地址。通过指针变量可以访问和 修改变量的值。
指针运算
指针可以进行加、减、比较等运算,以操作内存地址。
指针与数组
数组指针
指针与字符串
数组指针是指向数组首元素的指针。通过数 组指针可以访问数组元素,并进行数组操作。
字符串在C语言中通常以字符数组的形式存 储。通过指针可以访问字符串中的字符,并 进行字符串操作。
链表基础
链表节点
链表由一系列节点组成,每个节点包含数据 和指向下一个节点的指针。
插入节点
在链表中的指定位置插入一个新节点,需要 修改插入位置前后的节点的指针。
头节点
链表的第一个节点,通常用于存储链表的长 度和指向链表中的第一个节点。
删除节点
删除链表中的指定节点,需要修改被删除节 点前后的节点的指针。
选择结构
int main() {
```c
示例
01
03 02
选择结构
01
int a = 5;
02
int b = 10;
03
if (a > b) {
选择结构
选择结构
} else {
printf("b is greater than or equal to a");
gets函数
用于从控制台读取字符串。
02 程序控制结构
顺序结构
定义
顺序结构是指程序按照代码的先后顺 序执行,程序从上到下、从左到右依 次执行。
特点
顺序结构是最基本的程序结构,程序 按照代码的顺序执行,没有分支和循 环。
顺序结构
01
示例
02
```c
int main() {
03
指针基础
指针变量
指针变量用于存储内存地址。通过指针变量可以访问和 修改变量的值。
指针运算
指针可以进行加、减、比较等运算,以操作内存地址。
指针与数组
数组指针
指针与字符串
数组指针是指向数组首元素的指针。通过数 组指针可以访问数组元素,并进行数组操作。
字符串在C语言中通常以字符数组的形式存 储。通过指针可以访问字符串中的字符,并 进行字符串操作。
链表基础
链表节点
链表由一系列节点组成,每个节点包含数据 和指向下一个节点的指针。
插入节点
在链表中的指定位置插入一个新节点,需要 修改插入位置前后的节点的指针。
头节点
链表的第一个节点,通常用于存储链表的长 度和指向链表中的第一个节点。
删除节点
删除链表中的指定节点,需要修改被删除节 点前后的节点的指针。
选择结构
int main() {
```c
示例
01
03 02
选择结构
01
int a = 5;
02
int b = 10;
03
if (a > b) {
选择结构
选择结构
} else {
printf("b is greater than or equal to a");
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
2012-3-28
文件(File)的概念 文件(
计算机的内存容易健忘, 计算机的内存容易健忘,所以数据必须保存在硬 软盘、光盘和磁带等“不健忘” 盘、软盘、光盘和磁带等“不健忘”的外存上 这些能大量、永久保存信息的媒介, 这些能大量、永久保存信息的媒介,一般都以文件 的形式给用户及应用程序使用 文件 – 一般指存储在外部介质上具有名字(文件名)的一组相关 一般指存储在外部介质上具有名字(文件名)
0000000001111111, 0000000001111111,则文件中也存储为 0000000001111111, 0000000001111111,占2个字节
文本文件/ASCII码文件 文本文件/ASCII码文件 – 是一种字符序列 – 文件中存储每个字符的ASCII码 文件中存储每个字符的ASCII码 – 如整数127在文件中占3个字节,分别存放这3个字符的 如整数127在文件中占 个字节,分别存放这3 在文件中占3
理解
文件操作
掌握
常用库函数
理解
2012-3-28
1
I/O设备
输入设备 – 键盘、鼠标 键盘、 – 软盘、硬盘(以文件的形式) 软盘、硬盘(以文件的形式) – 串行口、并行口、USB接口、网络端口 串行口、并行口、USB接口 接口、 – 扫描仪、视频采集卡、电视卡、游戏杆、话筒 扫描仪、视频采集卡、电视卡、游戏杆、 – …… 输出设备 – 显示器、打印机 显示器、 – 软盘、硬盘(以文件的形式) 软盘、硬盘(以文件的形式) – 串行口、并行口、USB接口、网络端口 串行口、并行口、USB接口、 接口 – 音箱 – …… 单纯的输入设备或者单纯的输出设备越来越少
2012-3-28 15
C语言独特的文件访问
文件定位, 文件定位,用于文件的随机读写 – 打开的文件中有一个位置指针指示当前读写位置 – 对文件每进行一次顺序读写,文件指针自动指向下一读写位置 对文件每进行一次顺序读写, 顺序读写 int fseek(FILE *fp, long offset, int fromwhere); – 把fp的位置指针从fromwhere开始移动offset个字节 fp的位置指针从fromwhere开始移动 的位置指针从 开始移动offset个字节 – fromwhere: SEEK_SET或0-----文件开始 fromwhere: SEEK_SET或 -----文件开始 – SEEK_CUR或 -----当前位置 SEEK_CUR或1-----当前位置 – SEEK_END或 -----文件末尾 SEEK_END或2-----文件末尾 int ftell(FILE *fp); – 返回fp的当前位置指针 返回fp的当前位置指针 int rewind(FILE *fp); – 让fp的位置指针指向文件首字节 fp的位置指针 的位置指针指向文件首字节
能生成和使用这些类型的文件
也有不公开、甚至加密的文件格式 也有不公开、 – 如Microsoft Word的doc格式就不公开,所以至今还没有 Word的doc格式就不公开 格式就不公开,
Word以外的其它软件能完美地读出 文件 Word以外的其它软件能完美地读出doc文件 以外的其它软件能完美地读出doc
具体的文件流、视频流、音频流等 具体的文件流、视频流、
时光不能倒流, 时光不能倒流,但计算机中的很多流都是会倒流的 – 如果你想重新读已经读过的数据,或者要修改已经写入 如果你想重新读已经读过的数据,
的数据,可以发出流控(Flow Control)命令 Control) 的数据,可以发出流控( – 不会倒流的数据流也很多,例如网络上的数据流。网络 不会倒流的数据流也很多,例如网络上的数据流。 和数据线等介质只有很小的数据缓冲区, 和数据线等介质只有很小的数据缓冲区,没有大量存储 的能力
2012-3-28
13
C语言独特的文件访问
格式化读写 int fscanf(FILE *fp, const char *format, ...); – fscanf(fp, "%d,%6.2f", &i, &t); int fprintf(FILE *fp, const char *format, ...); – fprintf(fp, "%d,%6.2f", i, t);
ASCII码 ASCII码,即49,50,55 49,50,
2012-3-28
7
文件的格式
数据必须按照存入的类型读出, 数据必须按照存入的类型读出,才能恢复其本来面貌 公开的标准格式 – 如bmp、tif、gif、jpg和mp3等类型的文件 ,有大量软件 bmp、tif、gif、jpg和mp3等类型的文件
2012-3-28 2
ቤተ መጻሕፍቲ ባይዱ
标准输入输出
字符界面的操作系统一般都提供标准输入与输出设备 – DOS、Linux、Unix…… DOS、Linux、 一般情况,标准输入就是键盘, 一般情况,标准输入就是键盘,标准输出就是终端显 示器 – 操作系统有能力重定向标准输入与输出,比如让文件作为 操作系统有能力重定向标准输入与输出,
2012-3-28
12
C语言独特的文件访问
字符串读写 char *fgets(char *s,int n,FILE *fp); *fgets(char *s,int – 特例 – fgets(buf, sizeof(buf), stdin); int fputs(const char *s, FILE *fp); fputs(const
2012-3-28 14
C语言独特的文件访问
按数据块读写
unsigned fread(void *ptr, fread(void unsigned size, unsigned nmemb, FILE *fp); – 从fp读数据块到ptr fp读数据块到 读数据块到ptr – size是每个数据块的大小 size是每个数据块的大小 – nmemb是最多允许写的数据块个数 nmemb是最多允许写的数据块个数 – 返回实际读到的数据块个数 unsigned fwrite(const void *ptr, fwrite(const unsigned size, unsigned nmemb, FILE *fp); – 把ptr指向的数据块写入fp ptr指向的数据块写入 指向的数据块写入fp
标准输入(标准输出) 标准输入(标准输出) – 这种重定向程序本身是感觉不到的
自来水厂
2012-3-28
3
流(Stream)
水流 – “子在川上曰:逝者如斯夫” 子在川上曰:逝者如斯夫” 计算机中的流的概念 – 一般称为数据流,也有叫做字节流、比特流的,还有很 一般称为数据流,也有叫做字节流、比特流的,
5
2012-3-28
文件的存放
可以建立若干目录(文件夹), 可以建立若干目录(文件夹), 在目录里保存文件, 在目录里保存文件,同一级目录 里保存的文件不能同名。 里保存的文件不能同名。 对使用者而言,只要知道文件的 对使用者而言, 路径(全目录)和文件名, 路径(全目录)和文件名,就能 使用该文件 – C:\home\Sunner\main.c C:\home\Sunner\ – 这都是托OS的福 这都是托OS的福
C语言独特的文件访问
字符读写 int fgetc(FILE *fp); – 从fp读出一个字符并返回 fp读出一个字符并返回 – 若读到文件尾,则返回EOF 若读到文件尾,则返回EOF int fputc(int c, FILE *fp); fputc(int – 向fp输出字符c fp输出字符 输出字符c – 若写入错误,则返回EOF,否则返回c 若写入错误,则返回EOF,否则返回c
int fclose(FILE *fp);
2012-3-28 10
文件指针(File Pointer) 文件指针(
FILE *fp ; – 是FILE型指针变量 FILE型指针变量 – 标识一个特定的磁盘文件
typedef struct { short level; /*缓冲区‘满’或‘空’的程度*/ /*缓冲区 缓冲区‘ 的程度* unsigned flags; /*文件状态标志*/ /*文件状态标志 文件状态标志* char fd; /*文件描述符*/ /*文件描述符 文件描述符* unsigned char hold; /*如无缓冲区不读字符*/ /*如无缓冲区不读字符 如无缓冲区不读字符* short bsize; /*缓冲区的大小*/ /*缓冲区的大小 缓冲区的大小* unsigned char *buffer;/*数据缓冲区的位置*/ *buffer;/*数据缓冲区的位置 数据缓冲区的位置* unsigned char *curp; /*指针当前的指向*/ /*指针当前的指向 指针当前的指向* unsigned istemp; /*临时文件指示器*/ /*临时文件指示器 临时文件指示器* short token; /*用于有效性检查*/ /*用于有效性检查 用于有效性检查* }FILE; FILE; stdio.h文件中定义 在stdio.h文件中定义 2012-3-28 11
2012-3-28
8
文件访问
基本模式 – open:打开文件 open:
获得对此文件的指针、引用和句柄等,以证明可以使用此文件 获得对此文件的指针、引用和句柄等,
– read:读文件 read:
参数一般指明要读多少字节,读到哪块内存。 参数一般指明要读多少字节,读到哪块内存。 每次调用此功能,都是接着上次调用的结束位置读(所以是个输入流) 每次调用此功能,都是接着上次调用的结束位置读(所以是个输入流)
文件
基本概念
· 文件类型—文本文件/二进制文件、文件指针 文件类型—文本文件/二进制文件、 · 文件的打开和关闭 · 定位 · 文件的读/写 文件的读/ · 常用的库函数: 常用的库函数: 打开和关闭:fopen、 打开和关闭:fopen、fclose 文件结束判断: 文件结束判断:feof() 定位:fseek、 定位:fseek、rewind fputc、fgetc、fputs、fgets、 读/写:fputc、fgetc、fputs、fgets、 fprintf、fscanf、fwrite、fread等 fprintf、fscanf、fwrite、fread等
2012-3-28
文件(File)的概念 文件(
计算机的内存容易健忘, 计算机的内存容易健忘,所以数据必须保存在硬 软盘、光盘和磁带等“不健忘” 盘、软盘、光盘和磁带等“不健忘”的外存上 这些能大量、永久保存信息的媒介, 这些能大量、永久保存信息的媒介,一般都以文件 的形式给用户及应用程序使用 文件 – 一般指存储在外部介质上具有名字(文件名)的一组相关 一般指存储在外部介质上具有名字(文件名)
0000000001111111, 0000000001111111,则文件中也存储为 0000000001111111, 0000000001111111,占2个字节
文本文件/ASCII码文件 文本文件/ASCII码文件 – 是一种字符序列 – 文件中存储每个字符的ASCII码 文件中存储每个字符的ASCII码 – 如整数127在文件中占3个字节,分别存放这3个字符的 如整数127在文件中占 个字节,分别存放这3 在文件中占3
理解
文件操作
掌握
常用库函数
理解
2012-3-28
1
I/O设备
输入设备 – 键盘、鼠标 键盘、 – 软盘、硬盘(以文件的形式) 软盘、硬盘(以文件的形式) – 串行口、并行口、USB接口、网络端口 串行口、并行口、USB接口 接口、 – 扫描仪、视频采集卡、电视卡、游戏杆、话筒 扫描仪、视频采集卡、电视卡、游戏杆、 – …… 输出设备 – 显示器、打印机 显示器、 – 软盘、硬盘(以文件的形式) 软盘、硬盘(以文件的形式) – 串行口、并行口、USB接口、网络端口 串行口、并行口、USB接口、 接口 – 音箱 – …… 单纯的输入设备或者单纯的输出设备越来越少
2012-3-28 15
C语言独特的文件访问
文件定位, 文件定位,用于文件的随机读写 – 打开的文件中有一个位置指针指示当前读写位置 – 对文件每进行一次顺序读写,文件指针自动指向下一读写位置 对文件每进行一次顺序读写, 顺序读写 int fseek(FILE *fp, long offset, int fromwhere); – 把fp的位置指针从fromwhere开始移动offset个字节 fp的位置指针从fromwhere开始移动 的位置指针从 开始移动offset个字节 – fromwhere: SEEK_SET或0-----文件开始 fromwhere: SEEK_SET或 -----文件开始 – SEEK_CUR或 -----当前位置 SEEK_CUR或1-----当前位置 – SEEK_END或 -----文件末尾 SEEK_END或2-----文件末尾 int ftell(FILE *fp); – 返回fp的当前位置指针 返回fp的当前位置指针 int rewind(FILE *fp); – 让fp的位置指针指向文件首字节 fp的位置指针 的位置指针指向文件首字节
能生成和使用这些类型的文件
也有不公开、甚至加密的文件格式 也有不公开、 – 如Microsoft Word的doc格式就不公开,所以至今还没有 Word的doc格式就不公开 格式就不公开,
Word以外的其它软件能完美地读出 文件 Word以外的其它软件能完美地读出doc文件 以外的其它软件能完美地读出doc
具体的文件流、视频流、音频流等 具体的文件流、视频流、
时光不能倒流, 时光不能倒流,但计算机中的很多流都是会倒流的 – 如果你想重新读已经读过的数据,或者要修改已经写入 如果你想重新读已经读过的数据,
的数据,可以发出流控(Flow Control)命令 Control) 的数据,可以发出流控( – 不会倒流的数据流也很多,例如网络上的数据流。网络 不会倒流的数据流也很多,例如网络上的数据流。 和数据线等介质只有很小的数据缓冲区, 和数据线等介质只有很小的数据缓冲区,没有大量存储 的能力
2012-3-28
13
C语言独特的文件访问
格式化读写 int fscanf(FILE *fp, const char *format, ...); – fscanf(fp, "%d,%6.2f", &i, &t); int fprintf(FILE *fp, const char *format, ...); – fprintf(fp, "%d,%6.2f", i, t);
ASCII码 ASCII码,即49,50,55 49,50,
2012-3-28
7
文件的格式
数据必须按照存入的类型读出, 数据必须按照存入的类型读出,才能恢复其本来面貌 公开的标准格式 – 如bmp、tif、gif、jpg和mp3等类型的文件 ,有大量软件 bmp、tif、gif、jpg和mp3等类型的文件
2012-3-28 2
ቤተ መጻሕፍቲ ባይዱ
标准输入输出
字符界面的操作系统一般都提供标准输入与输出设备 – DOS、Linux、Unix…… DOS、Linux、 一般情况,标准输入就是键盘, 一般情况,标准输入就是键盘,标准输出就是终端显 示器 – 操作系统有能力重定向标准输入与输出,比如让文件作为 操作系统有能力重定向标准输入与输出,
2012-3-28
12
C语言独特的文件访问
字符串读写 char *fgets(char *s,int n,FILE *fp); *fgets(char *s,int – 特例 – fgets(buf, sizeof(buf), stdin); int fputs(const char *s, FILE *fp); fputs(const
2012-3-28 14
C语言独特的文件访问
按数据块读写
unsigned fread(void *ptr, fread(void unsigned size, unsigned nmemb, FILE *fp); – 从fp读数据块到ptr fp读数据块到 读数据块到ptr – size是每个数据块的大小 size是每个数据块的大小 – nmemb是最多允许写的数据块个数 nmemb是最多允许写的数据块个数 – 返回实际读到的数据块个数 unsigned fwrite(const void *ptr, fwrite(const unsigned size, unsigned nmemb, FILE *fp); – 把ptr指向的数据块写入fp ptr指向的数据块写入 指向的数据块写入fp
标准输入(标准输出) 标准输入(标准输出) – 这种重定向程序本身是感觉不到的
自来水厂
2012-3-28
3
流(Stream)
水流 – “子在川上曰:逝者如斯夫” 子在川上曰:逝者如斯夫” 计算机中的流的概念 – 一般称为数据流,也有叫做字节流、比特流的,还有很 一般称为数据流,也有叫做字节流、比特流的,
5
2012-3-28
文件的存放
可以建立若干目录(文件夹), 可以建立若干目录(文件夹), 在目录里保存文件, 在目录里保存文件,同一级目录 里保存的文件不能同名。 里保存的文件不能同名。 对使用者而言,只要知道文件的 对使用者而言, 路径(全目录)和文件名, 路径(全目录)和文件名,就能 使用该文件 – C:\home\Sunner\main.c C:\home\Sunner\ – 这都是托OS的福 这都是托OS的福
C语言独特的文件访问
字符读写 int fgetc(FILE *fp); – 从fp读出一个字符并返回 fp读出一个字符并返回 – 若读到文件尾,则返回EOF 若读到文件尾,则返回EOF int fputc(int c, FILE *fp); fputc(int – 向fp输出字符c fp输出字符 输出字符c – 若写入错误,则返回EOF,否则返回c 若写入错误,则返回EOF,否则返回c
int fclose(FILE *fp);
2012-3-28 10
文件指针(File Pointer) 文件指针(
FILE *fp ; – 是FILE型指针变量 FILE型指针变量 – 标识一个特定的磁盘文件
typedef struct { short level; /*缓冲区‘满’或‘空’的程度*/ /*缓冲区 缓冲区‘ 的程度* unsigned flags; /*文件状态标志*/ /*文件状态标志 文件状态标志* char fd; /*文件描述符*/ /*文件描述符 文件描述符* unsigned char hold; /*如无缓冲区不读字符*/ /*如无缓冲区不读字符 如无缓冲区不读字符* short bsize; /*缓冲区的大小*/ /*缓冲区的大小 缓冲区的大小* unsigned char *buffer;/*数据缓冲区的位置*/ *buffer;/*数据缓冲区的位置 数据缓冲区的位置* unsigned char *curp; /*指针当前的指向*/ /*指针当前的指向 指针当前的指向* unsigned istemp; /*临时文件指示器*/ /*临时文件指示器 临时文件指示器* short token; /*用于有效性检查*/ /*用于有效性检查 用于有效性检查* }FILE; FILE; stdio.h文件中定义 在stdio.h文件中定义 2012-3-28 11
2012-3-28
8
文件访问
基本模式 – open:打开文件 open:
获得对此文件的指针、引用和句柄等,以证明可以使用此文件 获得对此文件的指针、引用和句柄等,
– read:读文件 read:
参数一般指明要读多少字节,读到哪块内存。 参数一般指明要读多少字节,读到哪块内存。 每次调用此功能,都是接着上次调用的结束位置读(所以是个输入流) 每次调用此功能,都是接着上次调用的结束位置读(所以是个输入流)
文件
基本概念
· 文件类型—文本文件/二进制文件、文件指针 文件类型—文本文件/二进制文件、 · 文件的打开和关闭 · 定位 · 文件的读/写 文件的读/ · 常用的库函数: 常用的库函数: 打开和关闭:fopen、 打开和关闭:fopen、fclose 文件结束判断: 文件结束判断:feof() 定位:fseek、 定位:fseek、rewind fputc、fgetc、fputs、fgets、 读/写:fputc、fgetc、fputs、fgets、 fprintf、fscanf、fwrite、fread等 fprintf、fscanf、fwrite、fread等