4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 25页
| 80人阅读
| 10人下载
普通

内容正文:

第三章 程序设计的三大结构 --顺序结构 1 C语言 知识树 My First Template CONTENTS 目录 01 02 数据的格式化输入输出 C语言中的语句 03 字符数据的输入输出 04 输入中的缓存残余问题 字符数据的输入输出 C语言程序设计 4 C语言 框架结构 { 第一步:接收外界信息 第二步:加工处理 第三步:产生输出信息 } 程序 计算机的功能 C语言程序设计—字符数据的输入输出 My First Template 计算机 接收外界信息 加工 处理 产生输出信息 C语言 本次任务 输入大写字母, 输出其对应的小写字母。 C语言程序设计—字符数据的输入输出 My First Template CONTENTS 内容 01 02 相关知识 03 任务实现与总结 任务分析 C语言 小写字母=大写字母+32 常数 任务分析 ‘a’=‘A’+32 ‘b’=‘B’+32 需要从外界接收 字母在C语言中是以ASCII码的形式存储的 字符数据的输入输出—任务分析 My First Template C语言 字符输入输出函数 putchar( c ); getchar( ); 字符输入/输出函数 (getchar/putchar) 用于接受和显示1个字符 输出缓冲区 输入缓冲区 字符数据的输入输出—相关知识 My First Template C语言 字符输出函数putchar() putchar( )函数应用说明 格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能: 把字符c输出到显示器上 返值: 正常,为显示的代码值;出错,为EOF(-1) #include <stdio.h> main() { int c; char a; c=65; a='B'; putchar(c); putchar(' '); putchar(a); } 例子1.1 字符数据的输入输出—相关知识 My First Template C语言 字符输入函数getchar() getchar( )函数应用说明 格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值; 出错,返回EOF(-1) #include <stdio.h> main() { int c; printf("Enter a character:"); c=getchar(); printf("%c:%d ",c,c); } 例子 字符数据的输入输出—相关知识 My First Template C语言 存在的问题 #include <stdio.h> main() { char c1,c2; printf("Enter a character: "); c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 例子—使用字符函数输入两个字符并输出 两条输入语句,只让输入了一次, 不能继续获取字符。 字符数据的输入输出—相关知识 My First Template C语言 解决存在的问题 fflush(stdin)函数应用说明 功能: 清空输入缓冲区, 为了确保不影响后面的数据读取。 场景: 在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);。 Fflush(stdin) #include <stdio.h> main() { char c1,c2; printf("Enter a character: "); c1=getchar(); fflush(stdin); c2=getchar(); putchar(c1); putchar(c2); } 修改后的例子 字符数据的输入输出—相关知识 My First Template C语言 任务实现 #include <stdio.h> main() { char c,s; while(1) { printf("请输入大写字母: "); fflush(stdin); c=getchar(); s=c+32; putchar(s); } } 用来完成多次输入,这里直接去用即可 用来清除缓存 未增加fflush(stdin)的输出 增加fflush(stdin)的输出 字符数据的输入输出—任务实现 My First Template 总结 1. 提出任务(大写变小写) 2. 任务分析(输入输出字符) 3. 相关知识(字符输入输出) 4. 任务实现 输入中的缓存残余问题 C语言程序设计 16 C语言 本次任务 循环输入n个字符,直到输入的字符为‘N’截止 输入中的缓存残余问题 My First Template C语言 printf("c=%c ",c); 任务分析 ‘a’=‘A’+32 ‘b’=‘B’+32 需要从外界接收 字母在C语言中是以ASCII码的形式存储的 输入中的缓存残余问题 scanf("%c",&c); c=getchar(); My First Template C语言 任务分析 输入中的缓存残余问题 框架结构 { 第一步:采用do-while循环 第二步:循环中输入字符 第三步:构造循环结束条件 } 程序 My First Template 采集字符 循环 遇N结束 C语言 任务初实现 输入中的缓存残余问题 #include <stdio.h> void main() { char c; //通过do --while循环给出多个提示输入多个字符 do { printf("请输入一个字符 "); scanf("%c",&c);//格式串输入一个字符 printf("c=%c ",c); }while(c!='N'); } My First Template C语言 任务初实现 输入中的缓存残余问题 #include <stdio.h> void main() { char c; //通过do --while循环给出多个提示输入多个字符 do { printf("请输入一个字符 "); c=getchar();//采用字符输入 printf("c=%c ",c); }while(c!='N'); } My First Template C语言 任务再分析 输入中的缓存残余问题 #include <stdio.h> void main() { char c; //通过do --while循环给出多个提示输入多个字符 do { printf("请输入一个字符 "); scanf("%c",&c);//格式串输入一个字符 printf("c=%c ",c); printf("c=%d ",c); }while(c!='N'); } My First Template C语言 如何解决残余问题 输入中的缓存残余问题 框架结构(加入stdlib.h) { 第一步:采用do-while循环 fflush(stdin); 第二步:循环中输入字符 第三步:构造循环结束条件 } Windows下的C 框架结构 { 第一步:采用do-while循环 system(“read –n 1”); 第二步:循环中输入字符 第三步:构造循环结束条件 } linux下的C My First Template C语言 任务初实现 输入中的缓存残余问题 #include <stdio.h> #include<stdlib.h> void main() { char c; //通过do --while循环给出多个提示输入多个字符 do { printf("请输入一个字符 "); fflush(stdin); scanf("%c",&c);//格式串输入一个字符 printf("c=%c ",c); }while(c!='N'); } My First Template C语言 任务扩展 输入中的缓存残余问题 单个字符输入函数中的缓冲区残留问题。 程序代码: #include "stdio.h"//预处理 void main()//主函数 { char a,b;//变量定义 a=getchar();//获取字符到a b=getchar();//获取字符到b putchar(a);//输出字符a putchar(b);//输出字符b } 加入: #include”stdlib.h” fflush(stdin); My First Template $$

资源预览图

4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
4.2字符数据的输入输出(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。