C语言第12_13章

上传人:油条 文档编号:48812341 上传时间:2018-07-20 格式:PPT 页数:33 大小:171.50KB
返回 下载 相关 举报
C语言第12_13章_第1页
第1页 / 共33页
C语言第12_13章_第2页
第2页 / 共33页
C语言第12_13章_第3页
第3页 / 共33页
C语言第12_13章_第4页
第4页 / 共33页
C语言第12_13章_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《C语言第12_13章》由会员分享,可在线阅读,更多相关《C语言第12_13章(33页珍藏版)》请在金锄头文库上搜索。

1、第十二章 位运算掌握位运算的概念和方法,学会使用位运算符; 学会通过位运算实现对某些位的操作; 了解位段的概念以及位段的定义和引用。 12.1 相关概念 1. 位(bit):是指二进制中的位,它是计算机能处理的最小单位。2. 字节(byte):是计算机处理的基本单位。计算机的内存是按字节进行分配的。一个字节有八位二进制数组成。所以我们在C语言中数据类型都是以字节为基本单元。 3. 补码:一个正数的补码是其本身;一个负数的补码是其绝对值按位取反后加1。计算机是以补码的形式存放数的。 例如:-7 的补码是 1111 1111 1111 1001 12.2 位运算和位运算符 一、位运算的概念 位运算

2、:以二进制位为单位的运算。二、位运算符 “位运算”仅 限于整数(整型数和字符型) 。位逻辑运算符(、a=0x9d; b=0xa5;printf(“a: %xn”, a);printf(“aprintf(“a | b: %xn”,a | b);printf(“ab: %xn”,ab); 输出结果: a: aa1的十进制值是:1213位复合赋值运算符 由位运算符与赋值运算符组成。 printf(“%on”,aif(fp=fopen(“stu.dat“,“r“) =NULL) printf(“file not found.“); exit(0);else printf(“file opened ok

3、!“);fclose(fp); 程序运行结果:如果磁盘上存在文件stu.dat,屏幕上会显示 file open ok!,否则屏幕上显示file not found.。常使用此方法打 开一个文件exit函数的功能是关闭所 有文件,终止程序运行。 exit(0)为正常终止程序二、文件的关闭函数(fclose函数) (1) 调用方式:fclose(文件指针); 功能:关闭由文件指针指定的文件,把缓冲区中的数据(未装满缓冲区的数据)输出到磁盘上,释放文件指针。 例如: FILE *fp;fp=fopen(“output.dat”,“r+”); /* 进行读写操作 */fclose(fp);注意:fo

4、pen函数和fclose函数总是成对出现的。无fclose函数时会导致部分数据丢失!13.4 文件的读写函数 一、fputc函数 和fgetc函数 这两个函数是以字符为单位进行文件读写的函数 。1. fputc函数 一般调用形式 : fputc(字符常量或变量,文件指针); 功能:把指定字符存入文件指针所指的文件中。如果输出失败,则返回一个EOF(-1)。例如:fputc(ch,fp); (其中ch为字符变量,fp为文件指针)含义:将ch的值输出到fp所指向的文件中去。(EOF是在stdio.h文件中定义的符号常量,值为-1 )2. fgetc函数一般调用形式: 字符变量=fgetc(文件指针

5、); 功能:从文件指针所指文件中读一个字符赋给指定的字符变量。当遇文件结束符,返回一个文件结束标志EOF(-1)。 例如:ch=fgetc(fp); 其中ch为字符变量,fp为文件指针。含义:从fp所指向的文件中读入一个字符赋给字符变量ch。例: 阅读程序。#include “stdio.h“#define NULL 0main() FILE *fp;int count=0; char c;if(fp=fopen(“file.txt”,“r”)=NULL) printf(“Cant Open File n”); exit(0); c=fgetc(fp); while(c!=EOF) count

6、+; c=fgetc(fp); printf(“count=%dn”,count);fclose(fp); 若文件file.txt的内容是: abcd1234ABCD输出结果: 12这是读一个文本文件 中字符,并判断文件 是否结束的常用方法关于文件读写状态的检测 检测函数调用是否成功,可有两种手段来检测 :1. 由函数的返回值来确定 2. 用文件状态检测函数feof、ferror、fclearerr feof(fp) :测试fp所指向的文件的位置是否是文件尾。若已达到文件尾,函数返回非零值,否则返回0。常用程序段:while(!feof(fp)ferror(fp) :测试对fp所指向的文件的操

7、作是否出错。若出错,函数返回非零值,否则返回0。 fclearerr(fp) :使ferror和feof函数值置0。二、 fread函数和fwrite函数 一般调用形式 : fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 其中: buffer:是一个指针。(是起始地址)。对fread来说,它是读入数据的存放地址。对fwrite来说,它是输出数据的地址。 size :要读写的字节数。 count:要进行读写多少个size字节的数据项。 功能:对fp所指的文件读写buffer所指的size*count个字节数据。 例如:frea

8、d(f,4,2,fp); (其中f是实型数组名)例1 把数组a写入文件fa;再从fa读入数组b。#include “stdio.h“main() FILE* fp;int a100=1,5,6,78,21,34,67,87,23,b100, i ;fp=fopen(“tmp“,“wb“);fwrite(a,sizeof(a),1,fp);/* fwrite(a,sizeof(int),100,fp);*/fclose(fp);fp=fopen(“tmp“,“rb“);fread(b,sizeof(a),1,fp);for(puts(“),i=0;i10;i+)printf(“%6d“,bi);

9、fclose(fp); 三、 fprintf 函数和fscanf函数 这两个函数是进行格式读写文件的函数 。一般调用形式 : fprintf(文件指针,格式字符串,输出表列); fscanf(文件指针,格式字符串,输入表列) ; 例如:fprintf(fp,“%d,%6.2f”,i,x);功能:按指定格式将数据写到指定文件中。或从指定文件按格式输入数据。又如:fscanf(fp,“%d,%f”,四、 fputs函数 和fgets函数 这两个函数是以字符串为单位进行文件读写的函数 。 一般调用形式 : fputs(字符串,文件指针); 1. fputs函数功能:向指定文件输出一个字符串。 例如:

10、fputs(str,fp); (其中str是字符数组名) 含义:向fp 所指向的文件中输出str中的字符串。2. fgets函数 fgets(字符串,字符串长度,文件指针 ); 功能:从指定文件中读入一个字符串。 例如:fgets(str,n,fp); (其中str是字符数组名) 含义:从fp指向的文件读取长度为n-1的字符串,最后加一个0存入字符数组str中。调用形式 : 五、文件的定位函数 1. rewind函数 一般调用形式 : rewind(文件指针); 功能:使位置指针重新返回文件的开头。 2. fseek函数 一般调用形式 : fseek(文件指针,位移量,起始点); 起始点:用0

11、、1、2或其对应的名字SEEK_SET、SEEK_CUR、SEEK_END代替,分别表示文件开始、文件当前位置、文件末尾。 位移量:指以起始点为基点,向前(-)或向后移动的字节数。ANSI C标准规定在数字末尾加一个字母L,表示long型。 功能:把文件的读写位置指针移到指定的位置 。 例如:fseek(fp,128L,SEEK_SET); 将位置指针移到离文件头128个字节处。 例如:fseek(fp,-10L,2); 将位置指针从文件末尾处向后退10个字节。注意:fseek函数一般用于二进制文件。 3. ftell函数 一般调用形式 : ftell(文件指针); 功能:返回文件位置指针的当前值。 例如:pos=ftell(fp);获取fp指向文件的当前读写位置,并将其值赋给变量pos 。 作业:1. 编写并上机调试12.4(仅实现循环左移)3. 思考题:13.1、13.2、13 .32. 编写并上机调试13.6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号