谭浩强C语言全书word版CHAR13
- 格式:doc
- 大小:177.00 KB
- 文档页数:15
《C语言程序设计》教案
单位:湖南理工职业技术学院学院(教研室):风能工程学院工业机器人专业授课教师:周常欣职称:助教
《C语言程序设计》教案
第 1-2课时
《C语言程序设计》教案
《C语言程序设计》教案
第 5-6 课时
《C语言程序设计》教案
第 7-8 课时
《C语言程序设计》教案
第 9-10课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
第33-34 课时
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。
《c++程序设计》谭浩强_答案第13章13.1题#include <iostream>#include <cmath>using namespace std;int main(){double a,b,c,s,area;cout<<"please input a,b,c:";cin>>a>>b>>c;if (a+b<=c)cerr<<"a+b<=c,error!"<<endl;else if(b+c<=a)cerr<<"b+c<=a,error!"<<endl;else if (c+a<=b)cerr<<"c+a<=b,error!"<<endl;else{s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;}return 0;}13.1题另一解#include <iostream>#include <cmath>using namespace std;void input(double a,double b,double c) {cout<<"please input a,b,c:";cin>>a>>b>>c;}void area(double a,double b,double c) {double s,area;if (a+b<=c)cerr<<"a+b<=c,error!"<<endl;else if(b+c<=a)cerr<<"b+c<=a,error!"<<endl;else if (c+a<=b)cerr<<"c+a<=b,error!"<<endl;else{s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;} }int main(){double a=2,b=3,c=5;input(a,b,c);area(a,b,c);return 0;}13.2题#include <iostream> #include <iomanip> using namespace std; int main(){float a[5];cout<<"input data:";for(int i=0;i<5;i++)cin>>a[i];cout<<setiosflags(ios::fixed)<<setprecision(2);for(i=0;i<5;i++)cout<<setw(10)<<a[i]<<endl;return 0;}13.2题另一解#include <iostream> using namespace std; int main(){float a[5];int i;cout<<"input data:";for(i=0;i<5;i++)cin>>a[i];cout.setf(ios::fixed);cout.precision(2);for(i=0;i<5;i++){cout.width(10);cout<<a[i]<<endl;}return 0;}13.3题#include <iostream> #include <iomanip> using namespace std;int main(){for(int n=1;n<8;n++)cout<<setw(20-n)<<setfill(' ')<<" " //nm<<setw(2*n-1)<<setfill('B')<<"B"<<endl;return 0;}13.4题#include <iostream>#include <fstream>using namespace std; //VC++ 6.0要此行//fun1函数从键盘输入20个整数,分别存放在两个磁盘文件中void fun1(){int a[10];ofstream outfile1("f1.dat"),outfile2("f2.dat"); //分别定义两个文件流对象if(!outfile1) //检查打开f1.dat是否成功{cerr<<"open f1.dat error!"<<endl;exit(1);}if(!outfile2) //检查打开f2.dat是否成功{cerr<<"open f2.dat error!"<<endl;exit(1);}cout<<"enter 10 integer numbers:"<<endl;for(int i=0;i<10;i++) //输入10个数存放到f1.dat文件中{cin>>a[i];outfile1<<a[i]<<" ";}cout<<"enter 10 integer numbers:"<<endl;for(i=0;i<10;i++) //输入10个数存放到f2.dat文件中{cin>>a[i];outfile2<<a[i]<<" ";}outfile1.close(); //关闭f1.dat文件outfile2.close(); //关闭f2.dat文件}//从f1,dat读入10个数,然后存放到f2.dat文件原有数据的后面 void fun2(){ifstream infile("f1.dat"); //f1.dat作为输入文件if(!infile){cerr<<"open f1.dat error!"<<endl;exit(1);}ofstream outfile("f2.dat",ios::app);//f2.dat作为输出文件,文件指针指向文件尾,向它写入的数据放在原来数据的后面if(!outfile){cerr<<"open f2.dat error!"<<endl;exit(1);}int a;for(int i=0;i<10;i++){infile>>a; //磁盘文件f2.dat读入一个整数outfile<<a<<" "; //将该数存放到f2.dat中}infile.close();outfile.close();}//从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat void fun3(){ifstream infile("f2.dat"); //定义输入文件流infile,以输入方式打开f2.datif(!infile){cerr<<"open f2.dat error!"<<endl;exit(1);}int a[20];int i,j,t;for(i=0;i<20;i++)infile>>a[i]; //从磁盘文件f2.dat读入20个数放在数组a中for(i=0;i<19;i++) //用起泡法对20个数排序for(j=0;j<19-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}infile.close(); //关闭输入文件f2.datofstream outfile("f2.dat",ios::out); // f2.dat作为输出文件,文件中原有内容删除if(!outfile){cerr<<"open f2.dat error!"<<endl;exit(1);}cout<<"data in f2.dat:"<<endl;for( i=0;i<20;i++){outfile<<a[i]<<" "; //向f2.dat输出已排序的20个数cout<<a[i]<<" ";} //同时输出到显示器cout<<endl;outfile.close();}int main(){fun1(); //分别调用3个函数fun2();fun3();return 0;}13.5题#include <iostream>#include <fstream>using namespace std;struct staff{int num;char name[20];int age;double pay;};int main(){staffstaf[7]={2101,"Li",34,1203,2104,"Wang",23,674.5,2108,"Fun",54,778, 3006,"Xue",45,476.5,5101,"Ling",39,656.6},staf1;fstream iofile("staff.dat",ios::in|ios::out|ios::binary);if(!iofile){cerr<<"open error!"<<endl;abort();}int i,m,num;cout<<"Five staff :"<<endl;for(i=0;i<5;i++){cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;iofile.write((char *)&staf[i],sizeof(staf[i]));}cout<<"please input data you want insert:"<<endl;for(i=0;i<2;i++){cin>>staf1.num>>>>staf1.age>>staf1.pay;iofile.seekp(0,ios::end);iofile.write((char *)&staf1,sizeof(staf1));}iofile.seekg(0,ios::beg);for(i=0;i<7;i++){iofile.read((char *)&staf[i],sizeof(staf[i]));cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf [i].pay<<endl;}bool find;cout<<"enter number you want search,enter 0 to stop.";cin>>num;while(num){find=false;iofile.seekg(0,ios::beg);for(i=0;i<7;i++){iofile.read((char *)&staf[i],sizeof(staf[i]));if(num==staf[i].num){m=iofile.tellg();cout<<num<<" is No."<<m/sizeof(staf1)<<endl;cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf [i].pay<<endl;find=true;break;}}if(!find)cout<<"can't find "<<num<<endl;cout<<"enter number you want search,enter 0 to stop.";cin>>num;}iofile.close();return 0;}13.6题#include <iostream>#include <strstream>using namespace std;struct student{int num;char name[20];double score;};int main(){studentstud[3]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90},stud1[3];char c[50];int i;ostrstream strout(c,50);for(i=0;i<3;i++)strout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<" ";strout<<ends;cout<<"array c:"<<endl<<c<<endl<<endl;istrstream strin(c,50);for(i=0;i<3;i++)strin>>stud1[i].num>>stud1[i].name>>stud1[i].score;cout<<"data from array c to array stud1:"<<endl;for(i=0;i<3;i++)cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].score<<endl;cout<<endl;return 0;}13.6题另一题#include <iostream>#include <strstream>using namespace std;struct student{int num;char name[20];double score;};int main(){int i;studentstud[3]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90},stud1[3];char c[50];strstream strio(c,50,ios::in|ios::out);for(i=0;i<3;i++)strio<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<" ";strio<<ends;cout<<"array c:"<<endl<<c<<endl<<endl;for(i=0;i<3;i++)strio>>stud1[i].num>>stud1[i].name>>stud1[i].score;cout<<"data from array c to array stud1:"<<endl;for(i=0;i<3;i++)cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].score<<endl;cout<<endl;return 0;}。
谭浩强c语言第三版课后习题答案谭浩强教授的《C程序设计》第三版是一本广受欢迎的C语言教材,其课后习题也是很多学习者检验学习成果的重要方式。
以下是部分课后习题的答案,供参考:第一章:C语言概述1. C语言的特点是什么?- C语言具有高级语言的特点,同时具有低级语言的许多功能。
- C语言具有丰富的运算符和数据类型。
- C语言具有结构化编程的特点。
- C语言具有很好的移植性。
2. C语言的主要应用领域有哪些?- 系统软件开发。
- 嵌入式系统开发。
- 应用软件的开发。
第二章:数据类型及其运算1. C语言中的基本数据类型有哪些?- 整型(int)- 浮点型(float, double)- 字符型(char)2. 什么是算术运算符?- 加(+)、减(-)、乘(*)、除(/)、模(%)第三章:简单的输入输出1. C语言中标准输入输出函数有哪些?- `printf()` 用于格式化输出。
- `scanf()` 用于格式化输入。
2. 如何使用`printf()`函数进行输出?- 使用`printf()`函数时,需要在括号内提供格式字符串,格式字符串中可以包含转义序列和格式说明符。
第四章:分支结构1. C语言中的条件语句有哪些?- `if`语句- `if...else`语句- `switch`语句2. 如何使用`if`语句实现分支?- 使用`if`语句时,首先需要一个条件表达式,如果条件为真,则执行`if`语句块内的代码。
第五章:循环控制1. C语言中的循环语句有哪些?- `for`循环- `while`循环- `do...while`循环2. 如何使用`for`循环?- `for`循环需要三个部分:初始化表达式、条件表达式和迭代表达式。
第六章:数组1. 数组的基本概念是什么?- 数组是一种数据结构,可以存储固定大小的同类型元素集合。
2. 如何声明一个数组?- 使用数组类型和数组名来声明,例如:`int arr[10];`第七章:指针1. 什么是指针?- 指针是一种变量,它存储了另一个变量的内存地址。
C语⾔程序设计第三版谭浩强课后习题答案完整版C语⾔程序设计第三版谭浩强课后习题答案完整版第⼀章1.5请参照本章例题,编写⼀个C程序,输出以下信息:**************************值,输出其中最⼤值。
解:mian(){int a,b,c,max;printf(“请输⼊三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(maxmax=b;if(maxmax=c;\1aaㄩ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%c%c%c%c\n",c1,c2,c3,c4,c5); }运⾏结果:密码是Glmre3.9求下⾯算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.5设量。
(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a(5) a%=(n%=2),n的值等于5(6)a+=a-=a*=a解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0第四章4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a ’,c2=c1=c2=printf("a=%2d b=%2dc=%2d\n",a,b,c);printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)"); }ˊA ˊ,;); 4.8设圆半径r=1.5,圆柱⾼h=3,求圆周长、圆⾯积、圆球表⾯积、圆球体积、圆柱体积。
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。
(完整word版)谭浩强C语言知识点总结、选择结构(分支结构)、循环结构。
2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式、数据存放的位置就是他的地址、4)bit是位是指为0 或者1。
b yte 是指字节, 一个字节 = 八个位、概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、define PI3、1415926; 这个写法是错误的,一定不能出现分号。
3、每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、break可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章 C 语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。
2、每个C语言程序写完后,都是先编译,后链接,最后运行。
(、c---、obj---、exe)这个过程中注意、c和、obj文件时无法运行的,只有、exe文件才可以运行。
(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。
关键字:不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
预定义标识符:背诵define scanf printf include。
C语言程序设计谭浩强简介《C语言程序设计》是由谭浩强所著的一本经典教材,旨在介绍C语言的基本概念和程序设计技巧。
该教材从基础知识开始,逐步引导读者掌握C语言的各种语法和功能,在实践中培养编程思维和解决问题的能力。
本文将对《C语言程序设计》一书进行简要概述,并介绍其中的重要知识点和学习方法。
主要内容第一章:C语言基础第一章主要介绍了C语言的基础知识,包括C语言的起源、发展和特点,C语言程序的基本结构和运行方式,以及C语言中的注释、标识符和变量等概念。
通过学习这些内容,读者可以了解C语言的基本特性,为后续的学习打下基础。
第二章:数据类型和运算符第二章主要介绍了C语言中的数据类型和运算符。
这包括整数类型和浮点数类型的表示和运算,以及常见的算术运算符、关系运算符和逻辑运算符。
通过学习这些内容,读者可以掌握C语言中常用的数据类型和运算符,为后续的程序设计做好准备。
第三章:控制结构第三章介绍了C语言中的控制结构,包括顺序结构、分支结构和循环结构。
通过学习这些内容,读者可以了解C语言中如何实现条件判断和循环操作,以及如何使用选择语句和循环语句来控制程序的执行流程。
第四章:数组和字符串第四章主要介绍了C语言中的数组和字符串。
数组是一种用来存储一组相同类型数据的数据结构,而字符串则是由字符组成的字符数组。
通过学习这些内容,读者可以掌握C语言中数组和字符串的使用方法,为后续的程序设计提供更多的功能和灵活性。
第五章:函数和指针第五章介绍了C语言中的函数和指针。
函数是一段完成特定任务的代码块,而指针则是用来存储内存地址的变量。
通过学习这些内容,读者可以了解C语言中如何使用函数来模块化程序,以及如何使用指针来操作内存和实现高效的数据结构。
第六章:结构体和联合第六章主要介绍了C语言中的结构体和联合。
结构体是一种自定义的数据类型,可以用来将不同类型的数据组合在一起,而联合则是一种特殊的结构体,可以在相同的内存空间中存储不同类型的数据。
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 *fphzk fphzk=("c:\\hzk16","rb") 其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。 使用文件的方式共有12种,下面给出了它们的符号和意义。 文件使用方式 意义 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打开或建立一个二进制文件,只允许写数据 “ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+” 读写打开或建立一个文本文件,允许读写 “at+” 读写打开一个文本文件,允许读,或在文件末追加数据 “rb+” 读写打开一个二进制文件,允许读和写 “wb+” 读写打开或建立一个二进制文件,允许读和写 “ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据 对于文件使用方式有以下几点说明: 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!");