C语言程序设计课件第10章
C语言程序设计_谭浩强_第二版_CH10
}
第十章 指针 10.3 数组的指针和指向数组的指针变量 10.3.2 通过指针引用数组元素 例10.5输出数组中的全部元素。 ②通过数组名计算数组中元素的地址,找出元素的值。
main() {
int a[10],i; for(i=0;i<10;i++){scanf(“%d”,&a[i]);} print(“\n”); for(i=0;i<10;i++){printf(“%d”,*(a+i));} print(“\n”);
}
运行结果为: 100,10 100,10
第十章 指针 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.1 通过指针变量访问整型变量
pointer_1 &a
a 100 *pointer_1
pointer_2 &b
b 10 *pointer_2
第十章 指针 10.2 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.3 通过指针变量访问整型变量
pointer_1 &a
a 5 *pointer_1
pointer_2 &b
b 9 *pointer_2
第十章 指针 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.3 通过指针变量访问整型变量
b 5 *pointer_2
&b
第十章 指针 10.2 变量的指针和指向变量的指针变量
10.2.1指针变量的引用 例10.3 通过指针变量访问整型变量
pointer_1 &a
a 9 *pointer_1
利用文件保存数据
常用下面旳措施打开一种文件:
if ((fp=fopen(“file1”,’r″))==NULL) {printf(“cannot open this file\n”);
exit(0); }
终止正在执行旳程序
C语言程序设计 据
第10章 利用文件保存数
P280
用fclose函数关闭文件
➢关闭文件用fclose函数。fclose函数调
第10章 利用文件保存数
据
一txt般、1不d0a超t.、1出.c32、个文c字pp母件、(名odboj、c、P276
➢文件途ex径e、表p达pt文、件bm在p外等部)存储设备中旳位
置。如:
d: \cc\temp\file1.dat 表达file1.dat文件存储在d盘中旳cc目录下
旳temp子目录下面
FILE *fp;
fp=fopen(“a1”,”r”); fp和文件a1相联络,fp指向了a1文件
C语言程序设计 据
第10章 利用文件保存数
P278
用fopen函数打开数据文件
➢在打开一种文件时,告知编译系统下列3 个信息:
①需要访问旳文件旳名字
②使用文件旳方式(“读”还是“写”等)
③让哪一种指针变量指向被打开旳文件
➢fopen
fopen(文件名,使用文件方式);
➢例如:
fopen(“a1”,”r”); 表达要打开名为“a1”旳文件,使用文件方
式为“读入” fopen函数旳返回值是指向a1文件旳指针
C语言程序设计 据
第10章 利用文件保存数
P278
用fopen函数打开数据文件
➢一般将fopen函数旳返回值赋给一种指向 文件旳指针变量。如:
C语言程序设计全套教学教程完整版电子课件最全ppt电子教案
上一页 下一页
目录
8.1 指针的概念、定义和引用 8.1.1 指针的概念 8.1.2 指针变量的定义 8.1.3 指针变量的引用 8.2 指针与函数 8.2.1 指针变量作函数参数 8.2.2 返回值为指针的函数 8.2.3 通过指针调用函数
上一页 下一页
Hale Waihona Puke 目录8.3 指针与数组 8.3.1 指针与数组的关系 8.3.2 数组名作函数参数的指针解释 8.3.3 指针数组 8.3.4 多级指针 8.4 指针与字符串 8.4.1 字符串的表示形式 8.4.2 字符串指针作函数参数
2.汇编语言
汇编语言的指令与机器语言的指令基本上保持了一一对应的关系。与 机器语言比起来,汇编语言易记、易读、易检查、易修改,但却不能 被计算机直接识别和执行,必须由翻译程序翻译成机器语言程序后才 能执行。汇编语言仍然是面向特定计算机的语言,也仍然是低级语言
下一页
返回
1.1 程序设计语言概述
3.高级语言 高级语言是接近人类自然语言和数学语言的程序设计语言,具有以下
上一页 下一页
目录
5.2 do-while语句 5.3 for语句 5.4 break和continue语句 5.5 多重循环 5.6 综合应用举例 第6章 数组 6.1 数组概述 6.2 一维数组
上一页 下一页
目录
6.2.1 一维数组的定义 6.2.2 一维数组的引用 6.2.3 一维数组的初始化 6.2.4 一维数组的程序举例 6.3 二维数组 6.3.1 二维数组的定义 6.3.2 二维数组的引用 6.2.3 二维数组的初始化
翻译成目标程序,然后执行该目标程序。解释方式是把源程序逐句翻
上一页 下一页 返回
1.1 程序设计语言概述
C语言程序设计第五版谭浩强 ppt课件
Ctrl+KV--------块移动
Ctrl+KY-------块删除 Ctrl+KH--------块隐藏
窗口操作:
F5-----窗口缩放 F6-----窗口切换
程序调试:
<>
F8-----Step over
F7-------Trace into
/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
预处理命令
/* This is the main program */
void main() { int a,b,sum; /*定义变量*/ 函数
注释
的
a=10;
和
b=24;
sum=add(a,b);
空类型void
短整型short 整型int 长整型long 单精度型float
双精度型double
<
定义类型typedef
C语言程序设计
第一章 C语言概述
§1.3 简单的C程序介绍
例1.1 第一个程序This is a c program .
/* example1.1 The first C Program*/
第一章 C语言概述
C语言结构特点
❖函数与主函数
程序由一个或多个函数组成
必须有且只能有一个主函数main(),可以放在程序中任一 位置
程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
❖程序语句
C程序由语句组成 用“;”作为语句终止符
❖注释
/* */为注释,不能嵌套
C语言运算符丰富(附录C)
《C语言程序设计教程》PPT课件
③ 标准错误输出文件,文件指针为stderr,系统指 定为显示器,输出错误信息。
10.1 文件的概述
11
10.1.2 文件的打开与关闭
操作文件的一般步骤
打开文件 读写文件 关闭文件 打开量文的件函C:语数建配言,立一的用用个输于户文入完程件输成序缓出对与冲函数文区数据件。库文的中件联提的系供建,了立为大、文件分 读写数文据件的:读是写指、对数文据件的的追读加、等写操、作追。加和定位操作。 关闭文件在:程切序断中文调件用与这程些序函的数联时系,,必释须放先文用件缓冲
}
FFIILLE;E *文件指针变量/名* ;This is the FILE object */
10.1 文件的概述
10
10.1.1 文件和文件指针
4. 标准文件
标准文件是外部设备中的三个特殊的设备文件。它们 的文件指针是系统定义的,并由系统自动打开和关闭。这 三个标准文件分别是:
① 标准输入文件,文件指针为stdin,系统指定为 键盘。
include命区令。包含stdio.h文件。
10.1 文件的概述
12
10.1.2 文件的打开与关闭
1. 文件打开函数fopen( )
常用的调用形式: FILE *fp; fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。
缓冲区cha地r 址和大小f等d; 。 /* File descriptor
*/
FILE在类usnhCso型语irgt是n言ed系中ch统a,r定无hb义os论li的dz;e对;,磁包//**盘含UBnu文g在fefte件scrtcs还dhiazi是reo.i设fh头n备o 文b文uf件*f件/er中*/
第十章 C++ 基础
华厦职业学院
C语言程序设计
其中public是成员的属性说明,表示公有成员, 类的成员还可以声明为private(私有成员)或 protected(保护成员),不同属性的成员在访问时 规则不同。 类定义好之后,可以像结构那样定义变量,方 法是: 类的名称 变量名称;
华厦职业学院
C语言程序设计
在C++中类定义的变量称为对象(object),在定 义对象时,也可以用类名来定义类变量的指针,注 意在使用时类名称之前不写class。例如: time t; // t是类time的一个对象; time *pt; // pt是一个指向类对象的指针
华厦职业学院
C语言程序设计
关于成员函数,有以下规则: (1) 成员函数是类的函数,不能独立执行,必须要 用一个对象或对象指针来调用执行,什么对象调用 成员函数,成员函数就作用于什么对象,既成员函 数的执行结果依赖于具体的对象; (2) 成员函数中可以存取同一个类中的成员变量, 这些成员变量就是相应对象的成员变量;成员函数 也可以调用同一个类中的其它成员函计
10.3
构造函数与析构函数
10.3.1 构造函数 用类来定义对象变量时,往往需要让对象有一个初始值, 完成这种功能的函数就是构造函数。构造函数是与类同名的 函数,但函数没有任何返回类型,也不是void类型,例如: class time { public: int h,m,s; time() { h=0; m=0; s=0; } void set(int th,int tm,int ts) { h=th; m=tm; s=ts; } void show(); };
华厦职业学院
C语言程序设计
10.1 类与对象 10.2 this指针 10.3 构造函数与析构函数 10.4 引用与复制构造函数 10.5 动态内存分配 10.6 类成员的访问规则 10.7 对象的赋值 10.8 运算符重载
再谈函数 c语言 第10章
程序设计基础
解决任务10.3的程序
1 #include <stdio.h> 2 void Reverse(char r[ ], int low, int high); 3 void Converse(char r[ ], int n, int i); 4 5 int main( ) 6 { 7 char a[50] ; 8 int i, j, n = 0; 9 printf("请输入一个字符串:") ; 10 scanf("%s", a) ; 11 for (j = 0; a[j] != '\0'; j++) 12 n++; 13 printf("请输入循环左移的位数:"); 14 scanf("%d", &i); 15 printf("输入的字符串为:%s\n", a); 16 Converse(a, n, i); 17 printf("循环左移%d位后的字符串为:%s\n", i, a); 18 return 0; 19 }
同名变量,但代表不同的变量, 占用不同的内存单元,属于不同的作用域
程序设计基础
10.1 变量的作用域
复合语句级局部变量
#include <stdio.h> int main( ) { int a = 5, b = 10 ; { int temp ; temp = a ; a = b ; b = temp ; } printf("temp= %d", temp) ; return 0 ; }
程序设计基础
解决任务10.3的程序(续)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 void Converse(char r[ ], int n, int i) { Reverse(r, 0, i-1); Reverse(r, i, n-1); Reverse(r, 0, n-1); } void Reverse(char r[ ], int low, int high) { int i; char temp; for (i = 0; i<= (high-low)/2; i++) { temp = r[low + i]; r[low + i] = r[high - i]; r[high - i] = temp ; } }
第10章 位运算与枚举类型
运算结果:x>>2= -32
例10-6 右移运算示例。
位运算应用举例
例10-7 编程序实现将一个无符号整型数据二进制代码中8~ 11位取出的功能。 问题分析: 对处理的数据num通过num >>= 8将其本身的0~7位移出, 移位后num中原来的8~11位成为移位后数据的低4位; 通过mask=~(~0<< 4)表达式构造一个除低4位为1,其余 位都为0的整型数据mask; 通过表达式num&mask得到一个低4位保留了num低4位值 (即num最初的8~11位值)的整型数据并输出。
struct control { int x; char name[8]; unsigned a:3; unsigned :0; unsigned b:1; unsigned c:3; }control_data;
要求c占3个二进制位 struct control { unsigned a:3; unsigned b:3; unsigned :0; unsigned c:3; }control_data;
位段及应用
位段的概念和定义方法
在结构体类型中可以混合 定义位段和一般的结构体 成员。 定义位段时,可以跳过某 些位不用,方法是在结构 体类型中定义只指定了所 占用二进制位数的特殊成 员项。由于被跳过的这些 位段没有名字,所以在程 序中无法使用。
struct control { int x; char name[8]; unsigned a:3; unsigned b:1; unsigned c:3; }control_data; struct control { int x; char name[8]; unsigned a:3; unsigned :4; unsigned b:1; unsigned c:3; }control_data;
C语言程序设计第10章文件及其应用
学一学
1.定义文件指针 一般形式为: FILE * fp; 其中fp就是所定义文件指针。 FILE类型 以及所有的文件读写函数和相关常量都定 义在文件stdio.h中,在源程序的开头要 包含头文件 stdio.h 。
学一学
2.打开文件 C语言中,使用fopen函数来打开文件。打开文件是使 一个文件指针变量指向被打开文件的结构变量,以便通 过该指针变量访问打开的文件。fopen函数的调用形式 如下: fopen(chFileName,mode); 以mode 方式打开文件chFileName。其中,参数 chFileName 是将要读写文件的文件名,mode为文件 的操作方式。若文件打开成功,返回一个文件指针,若 打开失败,则返回空值NULL,NULL在stdio.h中被定 义为0。文件操作方式mode是一个整数,其取值及含 义如表10-1所示。
流程图
开始 定义文件指针fp,定义整型数组 iArray[5],定义循环变量i 以写二进制文件方式打开文件 fp=fopen("test.dat","wb") N i=0
fp==NULL Y
i<5 Y 输入1个整数存入 数组元素iArray[i]
N
i++
把数组iArray中5 个整数写入文件
显示出错信息 关闭文件 exit(0)
试一试
问题10.1编一程序从键盘输入一串字符“may friendship forever! ”,然后保存在文件myInfo.txt中。 【解题步骤】 1.定义文件指针fp; 2.定义字符数组chInfo用来存输入的字符串; 3.以写文本文件方式打开文件myInfo.txt; 4.如果打开文件失败,则输出错误信息并结束程序; 5.否则,打开文件成功,则从键盘输入数据; 5.将字符数组chInfo中的字符写入文件myInfo.txt; 6.关闭文件。
高树芳C语言程序设计--第十章
[解决方案]定义结构体类型变量存储学生信息,
使用scanf从键盘输入数据,使用fprintf函数按格 式输出数据到文件(生成data3.txt文件)。
程序代码
10
10.2
文件的读写
相关知识:
1.文件的读写 2.格式化读写函数
11
10.2
文件的读写
[课堂训练10-1] 1.使用Windows的记事本建立一个文件,其 中写入15个任意整数,数据之间用逗号分隔。 编程输出该文件所有的奇数。 2.编程以只读方式打开案例10-3中的 data3.txt文件,在屏幕上输出所有学生的数 据。
第10章
文件
知识目标: 1. 理解文件和文件指针的概念 2.掌握文件的打开和关闭方法 3.掌握文件的读写操作 4.掌握文件的定位与随机读写操作
1
第10章 文件 能力目标: 1. 会打开和关闭文件 2.会对文件进行读写和定位等操作
本章内容: 文件的定义,文件型指针,文件的打开与关闭,文件 的读写,文件的定位与随机读写。
2
第10章 10.1 10.2 10.3 10.4
文件
文件的打开与关闭 文件的读写 文件的定位和随机读写 知识拓展
3
10.1 文件的打开与关闭
案例10-1
输出文件中的整数及其和
4
10.1 文件的打开与关闭
案例10-1 [案例任务]
输出文件中的整数及其和
使用Windows的记事本在磁盘上与C程序文件在同一目 录下建立一个文件名为“data1.txt”的文本文件(如 图10-1所示),以空格、制表符或回车为分隔符输入 任意个整数,设计C程序,以只读方式打开此文件,若 该文件不存在,则输出“不能打开文件!”,若打开 成功,则输出所有整数,以及整数的个数和它们之和。
大一C语言实用课件
• Visual C++是Microsoft公司推出的基于 Windows平台的C++可视化开发环境。使用版 本Visual C++ 6.0
数值范围 10-38~1038 10-308~10308 10-4932~104932
double 16(8) 19
如:
float x,y;
double z;
五、 字符型数据
1. 字符常量 • 用单引号括起来的单个字符,如‘a’,’b’等。 • 转义字符:以\开头的特殊字符。
如:\n 表示回车换行
• 各种C语言的版本都是按照ANSI C作为标准的。 • 主要版本有:
Microsoft C, Turbo C, BORLAND C等。
• 实验环境:
Visual C++ 6.0
二、特点
1 语言简洁、紧凑,使用方便、灵活 2 运算符丰富 3 数据结构丰富 4 具有结构化的控制语句 5 程序设计自由度大
• 不合法的标识符:2a,x/y,a>b等。
使用标识符应注意:
• C语言中标识符区分大小写字母。即:大 写字母和小写字母被认为是两个字母。如: Sum,SUM,sum是不同的标识符。 • 标识符的长度没有统一的规定。
二、常量与变量
1. 常量与符号常量 • 常量:在程序运行过程中,值保持不变的量叫 ~。如:10,0,-3,4.2,-1.3,‘a’,’b’等。 • 符号常量:用标识符表示的一个常量称为~。 通常用大写字母表示。 如:#define PI 3.14159 main() 符号常量 { float r,area; r=10; area=PI*r*r; printf(“area=%f\n”,area); }
C语言程序设计(第3版)何钦铭 颜 晖 第10章 函数与程序结构
第10章函数与程序结构【练习10-1】使用递归函数计算1到n之和:若要用递归函数计算sum=1+2+3+…+n(n为正整数),请写出该递归函数的递归式子及递归出口。
试编写相应程序。
解答:递归式子: sum(i) = sum(i-1) + i;递归出口: sum(i) = 0;【练习10-2】请完成下列宏定义:① MIN(a,b) 求 a,b 的最小值② ISLOWER(c) 判断 c 是否为小写字母③ ISLEAP(y) 判断 y 是否为闰年④ CIRFER(r) 计算半径为 r 的圆周长解答:① MIN(a, b):求a,b的最小值。
#define MIN(a,b) (a<b)? a: b② ISLOWER(c):判断c是否为小写字母。
#define ISLOWER(c) (c>='a'&&c<='z')③ ISLEAP(y):判断y是否为闰年。
#define ISLEAP(y) (y%4==0&&y%100!=0)||y%400==0)④ CIRFER(r):计算半径为r的圆周长。
#define PI 3.14159#define CIRFER(r) 2*PI*(r)【练习10-3】分别用函数和带参宏实现从 3 个数中找出最大数,请比较两者在形式上和使用上的区别。
解答:(1)函数实现int max(int x,int y,int z){int t;if(x>=y)if(x>=z) t=x;else t=z;elseif(y>=z) t=y;else t=z;return t;}(2)宏实现#define MAX( x, y, z ) x>=y? (x>=z? x:z) : (y>=z? y:z)两者在定义形式上完全不同。
使用上函数是在执行时,从主调函数转到函数 max(),然后再返回到主调函数,函数体始终存在;而宏是在编译预处理时,用条件表达式去替换MAX(int x, int y, int z ),等程序执行时,执行的是条件表达式,而不再存在 MAX(int x, int y,int z )的式子。
C语言程序设计(第3版)第10章补充习题及答案
第10章补充习题及答案习题10.1 选择题(1)当已存在一个abc.txt文件时,执行函数fopen("abc.txt","r+")的功能是。
A.打开abc.txt文件,清除原有的内容B.打开abc.txt文件,只能写入新的内容C.打开abc.txt文件,只能读取原有内容D.打开abc.txt文件,可以读取和写入新的内容(2)若用fopen()函数打开一个已存在的文本文件,保留该文件原有内容,且可以读,可以写。
则文件打开模式是。
A."ab+" B."w+" C."a+" D."a"(3)以下不能将文件指针重新移到文件开头位置的函数是。
A.rewind(fp); B.fseek(fp,0,SEEK_SET);C.fseek(fp,-(long)ftell(fp),SEEK_CUR); D.fseek(fp,0,SEEK_END);(4)若用fopen()函数打开一个新二进制文件,该文件可以读也可以写,则文件的打开模式为 B 。
A."ab+" B."wb+" C."rb+" D."a+"(5)fread(buffer,64,2,fp)的功能是。
A.从fp所指的文件中读取64并存入buffer中B.从fp所指的文件中读取64和2并存入buffer中C.从fp所指的文件中读取64个字节的数据并存入buffer中D.从fp所指的文件中读取2个64字节的数据并存入buffer中(6)以下程序的功能是。
提示:PRN是打印设备。
#include <stdio.h>void main(){ FILE * fp;char chStr[]="HELLO";fp=fopen("PRN","w");fputs(chStr,fp);fclose(fp);}A.在屏幕显示HELLO B.把HELLO存入PRN文件中C.在打印机上打印出HELLO D.以上都不对10.2 填空题(1)使用fopen("abc","r+")打开文件时,若"abc"文件不存在,则返回。
《C语言程序设计教程》课件--第10章
8
程序区
数据区
输入 输出 文件
缓冲区
内存
磁盘文件 输出
输入 外存
图10.2 系统对缓冲文件的处理
2019/10/29
10.1 文件的概述
9
10.1.1 文件和文件指针
3. 缓冲文件和文件指针
文件类型指针
在缓冲文件系统中,对每个正在使用的文件
exit(0); }
2019/10/29
10.2 文本文件的读写
21
10.2.1 文件的字符输入输出函数
while ((c=getchar( ))!=EOF)
/*键盘文件结束标志:输入Ctrl+z,显示^Z后回车*/
putc(c, fp);
/* 将键盘输入的字符写到文件中 */
fclose(fp);
”w”:只写方式
为写(输出)文本文件打开文件。若文件不存在, 则建立一个新文件;若文件已存在,则清空文件。
”a”:追加方式
为写(输出)文本文件打开文件。若文件已存在, 则保持原来文件的内容,将新的数据增加到原来数据 的后面;若文件不存在,则返回NULL。
2019/10/29
10.1 文件的概述
14
因此对uunnss于iiggnn每eedd 个cha使r 用*ics中utrepm的;p; 磁//**盘CTue文rmrpeo件nrta必rayc须ftiilv先ee pi定onidni义tceart一o*r/*/ 个FILshEo类rt 型的文件t指oke针n;变量/* 并Use指d f向or此val变id量ity。checking */
常①字用符p的u的t调c先函用数后形与顺式f序p:u进tc行函,数的只功能能在相操同作。了在第sitd个io.h文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10 文件
10
第10章 文件
通过本章的学习掌握磁盘文件中数据载入 方法和信息保存方法,能够对学生成绩管 理系统进一步完善。
第1章 C语言程序设计基础
知识目标
理解文件的概念 掌握文件的基本操作 掌握文本文件和二进制文件的读写 方法 掌握文件的定位方法
技能目标
学会使用文件进行数据的存储及处 理 能够用文件完善学生成绩管理系统
10.2 文件的读写
10.2.1 文本文件的读写
C语言提供以字符方式读写文件的函数有: • 写字符函数 int fputc(char ch, FILE *fp) • 读字符函数 int fgetc(FILE *fp) • 写字符串函数int fputs(char *string,FILE *fp) • 读字符串函数char *fgets(char *string,int n,FILE *fp)
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
2.文件类型 (1)按文件的逻辑结构
记录文件:由具有一定结构的记录组成(定长和不定长)。 流式文件:由一个个字符(字节)数据顺序组成。 (2)按存储介质: 普通文件:存储介质文件(磁盘、磁带等) 设备文件:非存储介质(键盘、显示器、打印机等)
10.1.1 文件的概念及文件类型
5.文件的定义 一般情况下,要使用一个文件,系统将在内存中为这一文件开辟一个“文 件信息区”,用来存放文件的有关信息,如文件当前的读写位置、缓冲区 中未被处理的字符数、文件操作方式、下一个字符的位置、文件缓冲区 的位置等。这些信息保存在一个结构体中,该结构体由系统定义的,定 义在stdio.h的头文件中。Visual C++6.0系统中具体定义形式为:
/*用于有效性检验*/
int _charbuf;
/*如无缓冲区不读取字符*/
int _bufsiz;
/*缓冲区的大小*/
char *_tmpfname;
/*临时文件名*/
};
typedef struct_iobuf FILE;
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
5.文件的定义 C语言对文件的操作并不是直接通过文件名进行的,而是根据文件名生成 一个指向FILE结构类型的指针。也就是首先定义一个FILE的指针,例如:
10.2 文件的读写
10.2.1 文本文件的读写
【例10-4】 用fgets函数实现例10-2应如何修改程序?请根据提示
写出完整程序。 该程序的解题思路和传统流程图与例10-2相近,请参考前面内容。 只需对代码做部分修改,需要修改的地方主要有: (1)语句char ch; 改为char *chInfo; (2)语句ch=fgetc(fp);
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
2.文件类型 (3)按数据的组织形式:
文本文件:也称ASCII码文件。这种文件在保存时,每个字符对应 一个字节,用于存储对应的ASCII码。
二进制文件:不是保存ASCII码,而是按二进制的编码方式来保存 文件内容。
10.1 文件的基本概念
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
1.文件的概念 文件是指存储在外部介质上的数据集合,为标识一个文件,每个文件
都必须有一个文件名,文件名的一般形式为:文件名.[扩展名],其中扩展 名是可选的,并按类别命名,例如,C语言源程序的扩展名是C,而可执 行文件的扩展名是EXE,等等。
FILE *fp; 通过fp使用结构体变量中的文件信息访问文件。也就是说,C程序中是通 过文件指针变量fp找到与它相关的文件的,通过该指针对文件进行操作。
10.1 文件的基本概念
10.1.2 文件的打开和关闭
1. 文件的打开 C语言中,使用fopen()函数来打开文件。 格式:FILE *fp;
fp = fopen("文件名","操作方式"); 功能:以指定的操作方式打开一个文件。若文件正常打开,返回 指向文件结构体的指针;否则打开失败,返回 NULL。
10.2.1 文本文件的读写
【例10-2】打开例10.1生成的文件myInfo.txt,将其中的内容显示 在屏幕上,要求文件名从命令行参数输入。 问题分析: 需要首先打开文件myInfo.txt,再使用读字符函数对该文件进行读 操作,最后关闭文件。
10.2 文件的读写
10.2.1 文本文件的读写
问题分析: (1)定义文件指针fp。 (2)定义字符变量用来存放从文件中读取的字符。 (3)以读文本文件方式打开文件(文件名由命令行参数输入)。 (4)如果打开文件失败,则输出错误信息并结束程序。 (5)读取文件中的内容并显示在屏幕上。 (6)关闭文件。
while(ch!=EOF) {
putchar(ch); ch=fgetc(fp); } 改为:fgets(chInfo,100,fp); printf("%s",chInfo);
10.2 文件的读写
10.2.2 二进制文件的读写
1.写数据块函数 fwrite()函数的一般形式如下: fwrite(buffer,size,count,fp); 功能:将一组数据输出到指定的磁盘文件中。
10.1 文件的基本概念
10.1.2 文件的打开和关闭
2. 文件的关闭 使用完一个文件后,应使用fclose()函数及时关闭。fclose()函数和 fopen()函数一样,原型也在stdio.h中,调用的一般形式为: fclose(文件指针); 例如: fclose(fp); fclose函数也带回一个值,当正常完成关闭文件时,fclose函数返 回值为0(NULL),否则返回-1(EOF),EOF是stdio.h中定义的 符号常量,值为-1。EOF也是文件结束的标志。
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
5.文件的定义
struct_iobuf
{ char *_ptr;
/*文件输入的下一个位置*/
int _cnt;
/*当前缓冲区的相对位置*/
char *_base;
/*数据缓冲区的位置*/
int _flag;
/*文件状态标志*/
int _file;
10.2.1 文本文件的读写
算法设计: (1)定义文件指针fp。 (2)定义字符数组chInfo用来存放输入的字符串。 (3)以写文本文件方式打开文件myInfo.txt。 (4)若文件打开操作失败,则输出错误信息并结束程序;否则, 打开文件成功,则从键盘输入数据。 (5)将字符数组chInfo中的字符写入文件myInfo.txt。 (6)关闭文件。
i++;
}
改为: fputs(chInfo,fp);
10.2 文件的读写
10.2.1 文本文件的读写
4.读字符串函数 char *fgets(char *string,int n,FILE *fp) fgets()函数的一般形式如下:
fgets(str,n,fp); 功能:从文件指针fp所指的文件中读取一个字符串。
算法设计: (1)定义整型数组iArray存储5个整数。 (2)定义整型变量i为循环控制变量。 (3)定义文件指针fp。 (4)以写二进制文件方式打开文件test.dat。
10.2 文件的读写
10.2.2 二进制文件的读写
算法设计: (5)如果打开文件失败,则输出错误信息并结束程序。 (6)从键盘输入5个整数并存入数组iArray中。 (7)将数组iArray的元素写入文件。 (8)关闭文件。
10.2 文件的读写
10.2.2 二进制文件的读写
【例10-5】编一程序从键盘输入5个整数并写入到文件test.dat 中。 问题分析: 需要首先定义文件指针变量,再打开文件test.dat,然后使用写 数据块函数fwrite() 对该文件进行写操作,最后关闭文件。
10.2 文件的读写
10.2.2 二进制文件的读写
10.2 文件的读写
10.2.1 文本文件的读写
1. 写字符函数 int fputc(char c, FILE *fp) fputc()函数的一般形式如下:
ch = fputc( ch,fp); 功能:将字符型变量ch的内容写入文件指针fp所指定的文件中。 返回值:若成功,则返回写的字符ch;若出错,返回为EOF(-1)。
10.2 文件的读写
10.2.1 文本文件的读写
3.写字符串函数 int fputs(char *string,FILE *fp) fputs()函数的一般形式如下:
ch = fputs(str,fp); 功能:将一个字符串写到文件指针所指的文件中。
10.2 文件的读写
10.2.1 文本文件的读写
10.1.1 文件的概念及文件类型
3.文件的用途 (1)使程序与数据分离,数据文件的改动不会引起程序的改动。 (2)使数据共享,不同程序可以访问同一数据文件中的数据。 (3)程序运行的中间数据或者结果数据可以长期保存。
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
4.文件的处理方式 (1) 缓冲文件系统:又称为标准文件系统或高级文件系统,是目前常用的
10.2 文件的读写
10.2.1 文本文件的读写
传统流程图:
10.2 文件的读写
10.2.1 文本文件的读写
2.读字符函数 int fgetc(FILE *fp) fgetc()函数的一般形式如下: ch = fgetc( fp ); 功能: 从文件指针fp所指文件中读取一个字符。
10.2 文件的读写
C语言程序设计
机械工业出版社
00 开篇案例
目录
CONTENTS
01 C语言程序设计基础 02 基本数据及其运算