『易坊知识库摘要_谭浩强C程序设计第三版|谭浩强C程序设计(第三版)课件_第13章_文件( 三 )』int i; if(fp=fopen(stu-list,wb)=NULL) printf(cannot open filen); return; for(i=0; iSIZE; i+)/*二进制写*/ if(fwrite(/*调用save()保存学生信息*,运行情况如下: 输入个学生的姓名...
按关键词阅读: 第13章文件 第13章_文件
int i;
if(fp=fopen(stu-list,wb)=NULL) printf(cannot open filen);
return;
for(i=0;
iSIZE;
i+)/*二进制写*/ if(fwrite(/*调用save()保存学生信息*,运行情况如下: 输入个学生的姓名、学号、年龄和地址: Z- F - T - L, 。
17、验证在磁盘文件“-”中是否已存在此数据 ,用以下程序从“-”文件中读入数据 , 然后在 屏幕上输出,13.4 文件的读写(续,include #define SIZE 4 struct student_type char name10;
int num;
int age;
char addr15;
studSIZE;
main( ) int i;
FILE*fp;
fp=fopen(stu-list,rb);
for(i=0;
iSIZE;
i+) fread,屏幕上显示出以下信息: Z - F - T - L,如果已有的数据已经以二进制形式存储在一个磁盘文件 “-”中 , 要求从其中读入数据并输出到 “ 。
18、-”文件中 , 可以编写一个函数 ,从磁盘文件中读二进制数据,13.4 文件的读写(续,void load( ) FILE *fp;
int i;
if(fp=fopen(stu-dat,rb)=NULL) printf(cannot open infilen);
return;
for(i=0;
iSIZE;
i+) if(fread( fclose (fp);,13.4 文件的读写(续,三、格式化读写函数(fprintf()和fscanf() 函数调用: fprintf ( 文件指针 , 格式字符串 , 输出表列); fscanf ( 文件指针 , 格式字符串 , 输入表列); 函数功能: 从磁盘文件中读入或输出字 。
19、符 。
例: fprintf(fp,”%d,%6.2f”,i,t);
Fscanf (fp,”%d,%f,注意: 用fprintf和fscanf函数对磁盘文件读写 , 使用方便 , 容易理解 ,但由于在输入时要将ASCII码转换为二进制形式 , 在输出时又要 将二进制形式转换成字符 , 花费时间比较多 。
因此 , 在内存与磁 盘频繁交换数据的情况下 , 最好不用fprintf和fscanf函数 , 而 用fread和fwrite函数,13.4 文件的读写(续,三、其他读写函数 putw()和getw() 函数调用: putw(int i,FILE * fp); int i = getw(FILE * fp); 函数功能: 对 。
20、磁盘文件中读写一个字(整数) 。
例: putw(10,fp);
i = getw(fp,putw函数定义如下: putw(int I,FILE *fp) char s;
s=,gutw函数定义如下: gutw(FILE *fp) char s;
s=char *,13.4 文件的读写(续,用户自定义读取其他类型数据的函数 。
向磁盘文件写一个实数(用二进制方式)的函数putfloat : putfloat(float num,FILE *fp) char s;
int count;
s = (char*),13.4 文件的读写(续,fgets函数 函数作用: 从指定文件读入一个字符串 。
函数调用 。
21、: fgets(str,n,fp);
从fp指向的文件输入n-1个字符 , 在最后加一个0 。
返回值: str的首地址,13.4 文件的读写(续,fputs函数 函数作用: 向指定的文件输出一个字符串 。
函数调用: fgets(“china”,fp);
第一个参数可以是字符串常量、字符数组名或字符型 指针 。
字符串末尾的不输出 。
返回值: 输入成功 , 返回值为0; 输入失败 , 返回EOF,13.5 文件的定位,rewind函数 函数作用: 使位置指针重新返回文件的开头 , 无返回值 。
应用举例: 例3有一个磁盘文件 , 第一次将它的内容显示在屏幕 上 , 第二次把它复制到另一文件上,include main() F 。
22、ILE *fp1,*fp2;
fp1=fopen(file1.c,r);
fp2=fopen(file2.c,w);
while(!feof(fp1) putchar(getc(fp1);
rewind(fp1);
while(!feof(fp1) putc(getc(fp1),fp2);
fclose(fp1);
fclose(fp2);
,13.5 文件的定位,顺序读写和随机读写 顺序读写: 位置指针按字节位置顺序移动 。
随机读写: 读写完上一个字符(字节)后 , 并不一定要读写其 后续的字符(字节) , 而可以读些文件中任意位置 上所需要的字符(字节,13.5 文件的定位,fseek函数(一般用于二 。
23、进制文件) 函数功能: 改变文件的位置指针 。
函数调用形式: fseek(文件类型指针 , 位移量 , 起始点) 起始点:文件开头 SEEK_SET 0 文件当前位置 SEEK_CUR 1 文件末尾 SEEK_END 2 位移量:以起始点为基点 , 向前移动的字节数 。
一般 要求为long型,13.5 文件的定位,fseek函数应用举例 fseek(fp , 100L , ); 将位置指针移到离文件头100个字节处 。
fseek(fp , 50L ,); 将位置指针移到离当前位置50个字节处 。
fseek(fp , 50L ,); 将位置指针从文件末尾处向后退个字节,13.5 文件的定位,例3在磁盘文件上存有个学生的数据 。
。
24、要求 将第、个学生数据输入计算机 , 并 在屏幕上显示出来,include #include struct student_type char name10;
int num;
int age;
char sex;
stud10;
main() int i;
FILE *fp;
if(fp=fopen(stud-dat,rb)=NULL) printf(can not open filen);
exit(0);
for(i=0;
i10;
i+=2) fseek(fp,i*sizeof(struct student_type),0);
来源:(未知)
【学习资料】网址:/a/2021/0318/0021709442.html
标题:谭浩强C程序设计第三版|谭浩强C程序设计(第三版)课件_第13章_文件( 三 )