电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

[工学]c语言补充

32页
  • 卖家[上传人]:tia****nde
  • 文档编号:70786976
  • 上传时间:2019-01-18
  • 文档格式:PPT
  • 文档大小:672.31KB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、文件 预处理 用static声明变量 位运算 考试的典型题目,C语言补充,什么是文件 文件:存储在外部介质上(如磁盘和磁带等外存储器)数据或信息的集合。 例如:程序文件中保存着程序,而数据文件中保存着数据。 C12.C: C语言的源程序 文本文件 C12.OBJ: 目标文件 二进制文件 C12.EXE: 可执行文件 二进制文件 文件的分类 从文件数据的组织形式看 ASCII文件(或称文本文件,即TEXT文件) 二进制文件,打开文件 操作文件 关闭文件 打开文件:建立用户程序与文件的联系,为文件开辟文件缓冲区。 操作文件:是指对文件的读、写、追加和定位操作。 读操作:是从文件中读出数据,即将文件中的数据读入计算机; 写操作:是向文件中写入数据,即向文件输出数据。 追加操作:将数据写到原有数据的后面。 定位操作:文件读写位置指针。 关闭文件:切断文件与程序的联系,将文件缓冲区的内容写如磁盘,并释放文件缓冲区。,使用文件的一般步骤,C语言通过标准I/O库(stdio.h)函数实现文件操作,打开文件(fopen) fopen函数的调用形式是: FILE * fp; fp = fopen ( 文

      2、件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。 函数返回值: 失败:NULL,文件处理-fopen,文件处理-fopen的三种方式,文本文件的三种基本使用方式 ”r”:只读方式 为读(输入)文本文件打开文件。若文件不存在,则返回NULL。 ”w”:只写方式 为写(输出)文本文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则要将原来的文件清空。 ”a”:追加方式 在文本文件的末尾增加数据。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则返回NULL。,二进制文件的三种基本打开方式 ”rb”:只读方式。 ”wb”:只写方式。 ”ab”:追加方式。 文件的其他打开方式 ”r+”:可以文本文件进行读/写操作。 若文件不存在返回NULL;若文件存在内容不会被清空。 ”w+”:可以文本文件进行读/写操作。 若文件已经存在,则要先将文件原来的内容清空。 ”a+”:可以文本文件进行读/追加操作。文件内容不会清空。 ”rb+”:可以对二进制文件进行读/写操作。 ”wb+”:可以对二进制文件进行读/写操

      3、作。 ”ab+”:可以对二进制文件进行读/追加操作。,文件处理-fopen的打开方式,关闭文件(fclose) fclose函数的调用形式是: FILE * fp; fclose ( fp ); fp:已经打开的文件指针。 函数功能 关闭fp指定的文件,切断缓冲区与该文件的联系,并释放文件指针。 函数feof(fp):文件结束的判断 文件结束,返回值是1 文件未结束,返回值是0,文件处理-fclose,进行顺序操作的函数 字符输入输出函数 fgetc fputc 字符串输入输出函数 fgets fputs 格式化输入输出函数 fscanf fprintf 数据块输入输出函数 fread fwrite,文件的顺序读写,字符输入输出( fgetc / fputc ) 输入函数: ch = fgetc(fp); /* fp为已经打开的文件的指针 */ 函数功能: 从指定的文件中读取一个字符。 字符输入输出( fgetc / fputc ) 输出函数: fputc(ch,fp); /* ch为需要输出的字符 */ 函数功能: 将一个字符输出到指定文件中。,文件顺序读写-fgetc/fputc,

      4、例:从名为filea.dat的文本文件中逐个读入字符并显示,#include main ( ) FILE *fp; char ch; fp=fopen( ? ); ch=fgetc(fp); while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(“n”); fclose (fp); “filea.dat”,”r”,#include main ( ) FILE *f; f=fopen(“filea.txt”,”w”); fprintf(f,”abc”) fclose (f); 若文件中原有内容为:hello,则运行程序后,文件中的内容为: abc,#include main ( ) FILE *fp; if(f=fopen(“test.txt”,”r”)=?); printf(”未能打开文件n”); else printf(”打开文件成功n”); NULL (0),#include main ( ) FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1.dat”,“w“); for(i=0;i3;i+) fpr

      5、intf(fp,“%d”,ai); fprintf(fp,”n”); fclose (fp); fp=fopen(“d1.dat”,“r“); fscanf(fp,“%d”, 123,例:读程序,写出运行结果,字符串输入输出( fgets / fputs ) 输入函数: fget(s, n, fp) char s ; int n; FILE *fp; 函数功能: 从 fp 所指向的文件中读取长度不超过 n-1 个字符的字符串,并将该字符串放到字符数组 s 中。函数的返回值为字符数组 s 的首地址;如果文件结束或出错,则返回 NULL。,文件顺序读写-fgets,格式化输入输出( fscanf / fprintf ) 输入函数: fscanf(fp,格式控制符,变量地址表) 函数功能: 从 fp 所指向的ASCII文件中读取字符,按格式控制符的含义存入对应的变量中,返回值为输入的数据个数。 输出函数: fprintf(fp,格式控制符,表达式列表) FILE *fp; 函数功能: 将表达式列表中的数据,按照格式控制符的说明,存入 fp 所指向的ASCII文件中,返回值为实际存入的数据个数

      6、。,文件顺序读写-fscanf/fprintf,数据块输入输出( fread / fwrite ) 输入函数: fread(buffer, size, count, fp) 函数功能: 从文件fp中读取count个数据块存入buffer中,每个数据块的大小为size个字节。 输出函数: fwrite(buffer, size, count, fp) 函数功能: 将buffer中的count个数据块写入二进制文件 fp 中,每个数据块的大小为size个字节。,文件顺序读写-fread/fwrite,例:读程序,写出运行结果,#include main ( ) FILE *fp; int a10=1,2,3,0,0,0,i; fp=fopen(“d2.dat”,“wb“); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose (fp); fp=fopen(“d2.dat”,“rb“); fread(a,sizeof(int),10,fp); fclose (fp); for(i=0;i10;i+) printf(“%

      7、d”,ai); 1,2,3,0,0,1,2,3,0,0,位置指针移动(fseek) fseek(fp, offset, position ) 函数功能: 将指定文件 fp 的文件位置指针按照position规定的方式移动offset个字节。 position为起始点,指出以文件的什么位置为基准进行移动: 0 文件的开头; 1 文件的当前位置; 2 文件的末尾。 fseek(fp,50,0) 从文件头开始向前(文件尾方向)移动50个字节 fseek(fp,-10,1) 从当前位置向后(文件头方向)移动10个字节 fseek(fp,-20,2) 从文件尾开始向后(文件头方向)移动20个字节,文件随机读写-fseek,位置指针返回到文件头( rewind ) rewind ( fp ) 函数功能: 使 fp 指定的文件的位置指针重新定位到文件的头位置。,文件随机读写-rewind/ftell,例:读程序,写出运行结果,#include main ( ) FILE *fp; char *s1=“china”,*s2=“beijing”; fp=fopen(“abc.dat”,“wb+“); f

      8、write(s2,7,1,fp); rewind(fp); fwrite(s1,5,1,fp); fclose (fp); chinang,编译预处理之宏定义,宏定义的格式: #define 标识符 字符串,宏定义的功能: 在进行编译前,用字符串原样替换程序中的标识符。,例: #define M 5 #define N M+M main() int k; k=N*N*5; k=M+M*M+M*5=5+5*5+5*5=55 printf(“%dn”,k); ,局部静态变量指用关键字定义的变量。 static 类型说明符 变量列表; 局部静态变量只在定义它的函数起作用。 可对其初始化,否则系统自动对其赋值0。 整个程序运行结束时,为其分配的内存才被释放。 static型局部变量的初始化仅被执行一次,再次执行该代码块时,不再执行初始化的工作。,局部静态变量,读程序,写结果,Int fun(int x) static int t=0; return (t+=x); 1+2+3+4+5=15 main() int s, t; for(i=1;i=5;i+) s=fun(i); printf(“%

      9、dn”, s); ,If语句,int a,b,c; a=10;b=50;c=a; if(ab) a=b,b=a;c=a; printf(“a=%d b=%d c=%dn”,a,b,c); a=10 b=50 c=10,main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d”,+z); else printf(“%d”,+y); printf(“%dn”,x+); 1,malloc函数,格式: void *malloc(int size) 作用: 在内存的动态区存储中分配个长度为的连续空间,函数返回一个指向分配域起始地址的指针,int fun(int n) int *p; p=(int *)malloc(sizeof(int) *p=n; return *p; main() int a; a=fun(10); printf(“%dn”, a+fun(10); 20,位运算,首先将数据转换为二进制 &: 与 |: 或 : 非 : 异或(两数相同,结果为0;两数不同,结果为1) : 右移(1次=除2),main() char a=4; printf(“%dn”, a=a1); 8,a=01011101 b=11110000 要求将a高4位取反,低4位不变 ab a|b a&b a4,a=1,b=2,c=3 x=(ab)&c a=0001 b=0010 c=0011 x=0011=3,break语句,main() int k=5,n=0; do switch(k) case 1: case 3: n+=1;k-; break; default: n=0; k-; case 2: case 4: n+=2;k-; break; printf(“%d”,n); while(k0 235,main()

      《[工学]c语言补充》由会员tia****nde分享,可在线阅读,更多相关《[工学]c语言补充》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.