谭浩强C语言word版

合集下载

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社4-5原题:打印出下题的结果main(){int a=5,b=7;float x=67.8564,y=-789.124;char c='A';long n=1234567;unsigned u=65535;printf("%d%d\n",a,b);printf("%3d%3d\n",a,b);printf("%f,%f\n",x,y);printf("%-10f,%-10f\n",x,y);printf("%8.2f,%8.2f,%4f,%4f,%3f,%3f\n",x,y,x,y,x,y);printf("%e,%10.2e\n",x,y);printf("%c,%d,%o,%x\n",c,c,c,c);printf("%ld,%lo,%x\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u);printf("%s,%5.3s\n","COMPUTER","COMPUTER");}结果:575 767.856400,-789.12402367.856400 ,-789.12402367.86, -789.12,67.856400,-789.124023,67.856400,-789.1240236.78564e+01, -7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM4-6原题:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。

《C语言程序设计》课后习题答案解析[第四版]谭浩强

《C语言程序设计》课后习题答案解析[第四版]谭浩强

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n"); printf(" Very Good!\n\n");printf ("**************************\n"); return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。

C语言程序设计第四版_谭浩强7章

C语言程序设计第四版_谭浩强7章

➢函数的功能
return z; }
函数体
函数首部,不是语 句,行尾无分号
精选课件ppt
函数的返回值,类 型与首部定义一致14
函数的定义
关于函数类型的说明
无返回值的函数类型为void; 有返回值的函数,其类型根据返回值 类型决定;省略类型时默认为int(建议 不要省略)
精选课件ppt
15
函数的调用
int main( )
{ int max(int a[ ],int n);
int x[6],i;
for(i=0;i<=5;i++)
scanf("%d",&x[i]);
printf("max=%d",max(x,6));
return 0;
}
实参为数组名
精选课件ppt
int max(int a[ ],int n) { int m,i; m=a[0]; for (i=1;i<n;i++)
float fac; fac=1; for(i=1;i<=n;i++)
fac=fac*i; return fac;
printf("c="); scanf("%d",&c);
}
sum=factorial(a)+factorial(b)+factorial(c);
printf("%d!+%d!+%d!=%.0f",a,b,c,sum);
函数1 函数2 函数3
函数1 函数2
精选课件ppt
34
变量作用域——局部变量和全局变量

(完整word版)c程序设计(第四版)谭浩强-课后答案(完整版).pdf

(完整word版)c程序设计(第四版)谭浩强-课后答案(完整版).pdf

C 语言课后习题答案 -第四版 - 谭浩强 (1-7 )第一章#include <stdio.h>int main ( )**\n\n");printf(" Very Good!\n\n");printf (return 0; #include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c); max=a;if (max<b)max=b;if (max<c)max=c;printf **\n");printf("The largest number is %d\n",max); return 0;}第3章#include <stdio.h>#include <math.h> int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n); printf("p=%f\n",p); return 0; }#include <stdio.h>#include <math.h> int main()p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p1=p*((1+r5)*5); // 一次存5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存2 年期,到期后将本息再存3 年期// 先存3 年期,到期后将本息再存2 年期p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r1,5); // 存1 年期,到期后将本息存再存1 年期,连续存5 次p5=p*pow(1+r0/4,4*5); // 存活期存款。

(完整版)《C语言程序设计》教案(清华谭浩强)

(完整版)《C语言程序设计》教案(清华谭浩强)

第一章C语言及程序设计概述本章要求:了解C语言的特点、C语言与其它高级语言相比有什么异同;了解C程序在PC机上的建立、编译和运行过程;了解C语言程序设计思想的基本篇;重点:①C语言的主要特点;②C语言在PC机上的运行过程及上机操作过程;③常用算法的应用难点:无一、C语言概述C语言是目前国际上在各种计算机运行较为广泛流行的一种高级语言.主要表现为:C语言:适合于作为系统描述语言—-可用来写系统软件。

具有高级语言的特点,又有低级语言(汇编语言)的特点。

C语言:是AT&T贝尔实验室的Dennis Ritchie在1972年发明的。

C语言:是在B语言的基础上发展起来的.(ALGOL 60)C语言:最早开始是用于UNIX操作系统。

(C语言和UNIX是相辅相成的)DBASE 、Microsoft Exel 、 Microsoft Word、PC—DOS等,则是用C语言加上若干汇编子程序编写的。

1983年:——制定的新标准,称为(美国国家标准化协会)ANSI C1987年:—-Turbo C1.0 (Borland) 1988年:TC 1.5(图形和文本窗口)1989年:——Turbo C2。

0 (DOS操作系统、查错、Tiny模式生成com文件)1991年:—-Turbo C++(3.0) 支持windows 3.X说明:Turbo C语言可以在程序的任何地方嵌入汇编代码,提高速度,可以直接使用存储器和寄存器。

二.C语言的特点1.语言简洁、紧凑、使用方便、灵活C语言:——共有32个关键字,9种控制语句;程序书写自由,主要用小写字母表示;2.运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符;即:把括号、赋值、强制类型转换都作为运算符处理3.有丰富的数据类型整型、实型、字符型、数据类型、指针类型、结构体类型、共用体(联合)类型等。

实现复杂的数据结构(链表、树、栈、图)的运算。

4.具有结构化的功能,用函数作为程序模块,实现程序的模块化5.语法限制不太严格,程序设计自由度大.(放宽了语法检查)例:1)对数组下标越界不作检查,由程序编写者自己保证程序的正确;2)整型数据、字符型数据、逻辑型数据可以通用。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);} 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c 3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

谭浩强C语言教程Word版

谭浩强C语言教程Word版

文档供参考,可复制、编制,期待您的好评与关注!软件简介:1 C语言概述21.1 C语言的发展过程21.2 当代最优秀的程序设计语言21.3 C语言版本21.4 C语言的特点31.5 面向对象的程序设计语言31.6 C和C++31.7 简单的C程序介绍41.8 输入和输出函数51.9 C源程序的结构特点61.10 书写程序时应遵循的规则61.11 C语言的字符集61.12 C语言词汇71.13 Turbo C2.0集成开发环境的使用81.13.1 Turbo C2.0简介和启动81.13.2 Turbo C2.0集成开发环境81.13.3 File菜单91.13.4 Edit菜单101.13.5 Run菜单111.13.6 Compile菜单121.13.7 Project菜单131.13.8 Options菜单141.13.9 Debug菜单181.13.10 Break/watch菜单191.13.11 Turbo C2.0的配置文件202 程序的灵魂—算法12.1 算法的概念12.2 简单算法举例12.3 算法的特性42.4 怎样表示一个算法42.4.1 用自然语言表示算法42.4.2 用流程图表示算法42.4.3 三种基本结构和改进的流程图82.4.4 用N-S流程图表示算法92.4.5 用伪代码表示算法102.4.6 用计算机语言表示算法112.5 结构化程序设计方法1123 数据类型、运算符与表达式13.1 C语言的数据类型13.2 常量与变量33.2.1 常量和符号常量33.2.2 变量33.3 整型数据43.3.1 整型常量的表示方法43.3.2 整型变量53.4 实型数据73.4.1 实型常量的表示方法73.4.2 实型变量83.4.3 实型常数的类型93.5 字符型数据93.5.1 字符常量93.5.2 转义字符93.5.3 字符变量103.5.4 字符数据在内存中的存储形式及使用方法10 3.5.5 字符串常量113.5.6 符号常量123.6 变量赋初值123.7 各类数值型数据之间的混合运算133.8 算术运算符和算术表达式143.8.1 C运算符简介143.8.2 算术运算符和算术表达式153.9 赋值运算符和赋值表达式173.10 逗号运算符和逗号表达式183.11 小结193.11.1 C的数据类型193.11.2 基本类型的分类及特点193.11.3 常量后缀193.11.4 常量类型193.11.5 数据类型转换193.11.6 运算符优先级和结合性203.11.7 表达式204 最简单的C程序设计—顺序程序设计14.1 C语句概述14.2 赋值语句34.3 数据输入输出的概念及在C语言中的实现4 4.4 字符数据的输入输出44.4.1 putchar 函数(字符输出函数)44.4.2 getchar函数(键盘输入函数)54.5 格式输入与输出54.5.1 printf函数(格式输出函数)54.5.2 scanf函数(格式输入函数) 84.6 顺序结构程序设计举例1245 分支结构程序15.1 关系运算符和表达式15.1.1 关系运算符及其优先次序15.1.2 关系表达式15.2 逻辑运算符和表达式25.2.1 逻辑运算符极其优先次序25.2.2 逻辑运算的值35.2.3 逻辑表达式35.3 if语句45.3.1 if语句的三种形式45.3.2 if语句的嵌套75.3.3 条件运算符和条件表达式95.4 tch语句105.5 程序举例1156 循环控制16.1 概述16.2 goto语句以及用goto语句构成循环1 6.3 while语句26.4 do-while语句46.5 for语句66.6 循环的嵌套96.7 几种循环的比较96.8 break和continue语句96.8.1 break语句96.8.2 continue 语句106.9 程序举例1167 数组17.1 一维数组的定义和引用17.1.1 一维数组的定义方式17.1.2 一维数组元素的引用27.1.3 一维数组的初始化47.1.4 一维数组程序举例47.2 二维数组的定义和引用67.2.1 二维数组的定义67.2.2 二维数组元素的引用67.2.3 二维数组的初始化77.2.4 二维数组程序举例97.3 字符数组97.3.1 字符数组的定义97.3.2 字符数组的初始化97.3.3 字符数组的引用107.3.4 字符串和字符串结束标志107.3.5 字符数组的输入输出107.3.6 字符串处理函数127.4 程序举例147.5 本章小结178 函数18.1 概述18.2 函数定义的一般形式38.3 函数的参数和函数的值48.3.1 形式参数和实际参数48.3.2 函数的返回值58.4 函数的调用68.4.1 函数调用的一般形式68.4.2 函数调用的方式68.4.3 被调用函数的声明和函数原型78.5 函数的嵌套调用88.6 函数的递归调用108.7 数组作为函数参数128.8 局部变量和全局变量178.8.1 局部变量178.8.2 全局变量198.9 变量的存储类别208.9.1 动态存储方式与静态动态存储方式20 8.9.2 auto变量218.9.3 用static声明局部变量218.9.4 register变量228.9.5 用extern声明外部变量239 预处理命令19.1 概述19.2 宏定义19.2.1 无参宏定义19.2.2 带参宏定义49.3 文件包含89.4 条件编译99.5 本章小结1110 指针110.1 地址指针的基本概念110.2 变量的指针和指向变量的指针变量2 10.2.1 定义一个指针变量310.2.2 指针变量的引用310.2.3 指针变量作为函数参数710.2.4 指针变量几个问题的进一步说明10 10.3 数组指针和指向数组的指针变量13 10.3.1 指向数组元素的指针1310.3.2 通过指针引用数组元素1410.3.3 数组名作函数参数1610.3.4 指向多维数组的指针和指针变量2210.4 字符串的指针指向字符串的针指变量25 10.4.1 字符串的表示形式2510.4.2 使用字符串指针变量与字符数组的区别28 10.5 函数指针变量2910.6 指针型函数3010.7 指针数组和指向指针的指针3110.7.1 指针数组的概念3110.7.2 指向指针的指针3410.7.3 main函数的参数3610.8 有关指针的数据类型和指针运算的小结37 10.8.1 有关指针的数据类型的小结3710.8.2 指针运算的小结3710.8.3 void指针类型3811 结构体与共用体111.1 定义一个结构的一般形式111.2 结构类型变量的说明211.3 结构变量成员的表示方法411.4 结构变量的赋值411.5 结构变量的初始化511.6 结构数组的定义511.7 结构指针变量的说明和使用711.7.1 指向结构变量的指针711.7.2 指向结构数组的指针911.7.3 结构指针变量作函数参数1011.8 动态存储分配1111.9 链表的概念1211.10 枚举类型1411.10.1 枚举类型的定义和枚举变量的说明14 11.10.2 枚举类型变量的赋值和使用1511.11 类型定义符typedef 1612 位运算112.1 位运算符C语言提供了六种位运算符:1 12.1.1 按位与运算112.1.2 按位或运算212.1.3 按位异或运算212.1.4 求反运算312.1.5 左移运算312.1.6 右移运算312.2 位域(位段)412.3 本章小结613 文件113.1 C文件概述113.2 文件指针213.3 文件的打开与关闭213.3.1 文件的打开(fopen函数) 213.3.2 文件关闭函数(fclose函数)413.4 文件的读写413.4.1 字符读写函数fgetc和fputc 413.4.2 字符串读写函数fgets和fputs 813.4.3 数据块读写函数fread和fwtrite 913.4.4 格式化读写函数fscanf和fprintf 1113.5 文件的随机读写1213.5.1 文件定位1213.5.2 文件的随机读写1313.6 文件检测函数1413.6.1 文件结束检测函数feof函数1413.6.2 读写文件出错检测函数1413.6.3 文件出错标志和文件结束标志置0函数14 13.7 C库文件1413.8 本章小结15。

(完整版)《C语言程序设计》课后习题答案(第四版)谭浩强

(完整版)《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51。

4.1最简单的C语言程序举例61.4.2C语言程序的结构101。

5运行C程序的步骤和方法121。

6程序设计的任务141-5 #include 〈stdio。

h>int main (){ printf ("**************************\n\n”); printf(" Very Good!\n\n”);printf (”**************************\n”);return 0;}1—6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n”);scanf(”%d,%d,%d”,&a,&b,&c);max=a;if (max〈b)max=b;if (max〈c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法—-程序的灵魂162。

1什么是算法162。

2简单的算法举例172。

3算法的特性212。

4怎样表示一个算法222。

4。

1用自然语言表示算法222。

4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4。

4用N S流程图表示算法282。

4。

5用伪代码表示算法312。

4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计373。

1顺序程序设计举例373.2数据的表现形式及其运算393。

2.1常量和变量393.2。

2数据类型423.2.3整型数据443。

2。

4字符型数据473。

2.5浮点型数据493。

2。

6怎样确定常量的类型513。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13 文件 (1)13.1 C文件概述 (1)13.2 文件指针 (2)13.3 文件的打开与关闭 (2)13.3.1 文件的打开(fopen函数) (2)13.3.2 文件关闭函数(fclose函数) (4)13.4 文件的读写 (4)13.4.1 字符读写函数fgetc和fputc (4)13.4.2 字符串读写函数fgets和fputs (8)13.4.3 数据块读写函数fread和fwtrite (9)13.4.4 格式化读写函数fscanf和fprintf (11)13.5 文件的随机读写 (12)13.5.1 文件定位 (12)13.5.2 文件的随机读写 (13)13.6 文件检测函数 (14)13.6.1 文件结束检测函数feof函数 (14)13.6.2 读写文件出错检测函数 (14)13.6.3 文件出错标志和文件结束标志置0函数 (14)13.7 C库文件 (14)13.8 本章小结 (15)13 文件13.1 C文件概述所谓“文件”是指一组相关数据的有序集合。

这个数据集有一个名称,叫做文件名。

实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。

文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。

从不同的角度可对文件作不同的分类。

从用户的角度看,文件可分为普通文件和设备文件两种。

普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件、目标文件、可执行程序;也可以是一组待输入处理的原始数据,或者是一组输出的结果。

对于源文件、目标文件、可执行程序可以称作程序文件,对输入输出数据可称作数据文件。

设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。

在操作系统中,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。

通常把显示器定义为标准输出文件,一般情况下在屏幕上显示有关信息就是向标准输出文件输出。

如前面经常使用的printf,putchar函数就是这类输出。

键盘通常被指定标准的输入文件,从键盘上输入就意味着从标准输入文件上输入数据。

scanf,getchar函数就属于这类输入。

从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。

ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。

例如,数5678的存储形式为:ASCII码: 00110101 00110110 00110111 00111000↓↓↓↓十进制码: 5 6 7 8共占用4个字节。

ASCII码文件可在屏幕上按字符显示,例如源程序文件就是ASCII文件,用DOS命令TYPE 可显示文件的内容。

由于是按字符显示,因此能读懂文件内容。

二进制文件是按二进制的编码方式来存放文件的。

例如,数5678的存储形式为:00010110 00101110只占二个字节。

二进制文件虽然也可在屏幕上显示,但其内容无法读懂。

C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。

输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。

因此也把这种文件称作“流式文件”。

本章讨论流式文件的打开、关闭、读、写、定位等各种操作。

13.2 文件指针在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。

通过文件指针就可对它所指的文件进行各种操作。

定义说明文件指针的一般形式为:FILE *指针变量标识符;其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。

在编写源程序时不必关心FILE结构的细节。

例如:FILE *fp;表示fp是指向FILE结构的指针变量,通过fp即可找存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,实施对文件的操作。

习惯上也笼统地把fp称为指向一个文件的指针。

13.3 文件的打开与关闭文件在进行读写操作之前要先打开,使用完毕要关闭。

所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。

关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。

在C语言中,文件操作都是由库函数来完成的。

在本章内将介绍主要的文件操作函数。

13.3.1 文件的打开(fopen函数)fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);其中,“文件指针名”必须是被说明为FILE 类型的指针变量;“文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求。

“文件名”是字符串常量或字符串数组。

例如:FILE *fp;fp=("file a","r");其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。

又如:FILE *fphzkfphzk=("c:\\hzk16","rb")其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。

两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。

对于文件使用方式有以下几点说明: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) if((fp=fopen("c:\\hzk16","rb")==NULL){printf("\nerror on open c:\\hzk16 file!");getch();exit(1);}这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。

在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。

敲键后执行exit(1)退出程序。

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

对二进制文件的读写不存在这种转换。

8)标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。

13.3.2 文件关闭函数(fclose函数)文件一旦使用完毕,应用关闭文件函数把文件关闭,以避免文件的数据丢失等错误。

fclose函数调用的一般形式是:fclose(文件指针);例如:fclose(fp);正常完成关闭文件操作时,fclose函数返回值为0。

如返回非零值则表示有错误发生。

13.4 文件的读写对文件的读和写是最常用的文件操作。

在C语言中提供了多种文件读写的函数:·字符读写函数:fgetc和fputc·字符串读写函数:fgets和fputs·数据块读写函数:freed和fwrite·格式化读写函数:fscanf和fprinf下面分别予以介绍。

使用以上函数都要求包含头文件stdio.h。

13.4.1 字符读写函数fgetc和fputc字符读写函数是以字符(字节)为单位的读写函数。

每次可从文件读出或向文件写入一个字符。

1.读字符函数fgetcfgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:字符变量=fgetc(文件指针);例如:ch=fgetc(fp);其意义是从打开的文件fp中读取一个字符并送入ch中。

对于fgetc函数的使用有以下几点说明:1)在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。

2)读取字符的结果也可以不向字符变量赋值,例如:fgetc(fp);但是读出的字符不能保存。

3)在文件内部有一个位置指针。

用来指向文件的当前读写字节。

在文件打开时,该指针总是指向文件的第一个字节。

使用fgetc 函数后,该位置指针将向后移动一个字节。

因此可连续多次使用fgetc函数,读取多个字符。

应注意文件指针和文件内部的位置指针不是一回事。

文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。

文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。

【例13.1】读入文件c1.doc,在屏幕上输出。

#include<stdio.h>main(){FILE *fp;char ch;if((fp=fopen("d:\\jrzh\\example\\c1.txt","rt"))==NULL){printf("\nCannot open file strike any key exit!");getch();exit(1);}ch=fgetc(fp);while(ch!=EOF){putchar(ch);ch=fgetc(fp);}fclose(fp);本例程序的功能是从文件中逐个读取字符,在屏幕上显示。

程序定义了文件指针fp,以读文本文件方式打开文件“d:\\jrzh\\example\\ex1_1.c”,并使fp指向该文件。

如打开文件出错,给出提示并退出程序。

程序第12行先读出一个字符,然后进入循环,只要读出的字符不是文件结束标志(每个文件末有一结束标志EOF)就把该字符显示在屏幕上,再读入下一字符。

每读一次,文件内部的位置指针向后移动一个字符,文件结束时,该指针指向EOF。

执行本程序将显示整个文件。

2.写字符函数fputcfputc函数的功能是把一个字符写入指定的文件中,函数调用的形式为:fputc(字符量,文件指针);其中,待写入的字符量可以是字符常量或变量,例如:fputc('a',fp);其意义是把字符a写入fp所指向的文件中。

相关文档
最新文档