7 输入输出问题.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
要目 输入问题 输入循环及其控制 字符输入的控制 理解输入过程 标准输入/输出及其重新定向 输入与计算机系统的安全性 输入输出问题 循环输入问题 通过简单实例介绍scanf和getchar的使用。例子程序都是输入确定的几项数据,比较简单 一般而言,程序常要输入一系列数据,可能要输入一组类似的数据,也可能写程序时无法确定要输入的数据项数 这些情况下就需要写输入的循环 下面研究循环处理多项输入时可能遇到的问题 特别研究描述循环输入的技术(循环输入的控制问题) 这里的关键问题是:如何写程序,使使用者可以通过输入控制程序里循环的执行和结束(让使用程序的人可以控制程序里循环的执行) 下面先从最简单的形式开始 通过计数器控制的输入循环 如编程时知道要输入的数据项数,就可以用计数器直接控制输入循环。例如由各月降雨量统计一年总量: #include stdio.h int main() { double x, sum; int n; for (sum=0, n=1; n = 12; ++n) { printf(Enter the data of %dth month:“, n); scanf(%lf, x); sum = sum + x; } printf(Annual Precipitation: %f\n, sum); return 0; } 用特殊结束值控制输入循环 如果编程时不能确定需要输入的数据项数(可能有时多有时少),就不能采用简单的计数循环方法,需另辟蹊径 一种常用技术是结束标志法: 人为规定一个特殊的 “结束标志”值 该结束标志是一个特殊输入值,它应不是正常输入数据 让程序在循环中不断检测得到的数据,一旦看到这个特殊数据,就知道数据全部输入完毕,应结束循环了 采用这一类技术时 循环结束条件就是写程序的人与使用者之间的一种约定 当输入值满足约定时就让循环结束 货单汇总 假设每次输入数量,要求统计货物总数。我们可以规定通过输入 0 通知程序所有数据都已输入完毕 #include stdio.h int main() { int amount = 0; int number = 100; while (number != 0) { printf(“Input number: ); scanf(“%d, number); amount = amount + number; } printf(Total amount: %d\n, amount); return 0; } 程序中循环体的执行次数完全由程序执行时外部提供的输入数据项数决定(输入多少项后输入单价0) 最后一种循环形式 #include stdio.h int main() { int amount = 0; int number; do { printf(“Input number: ); scanf(“%d, number); amount = amount + number; }while (number != 0); printf(Total amount: %d\n, amount); return 0; } 问题 上面两种方式可以解决许多程序里的数据输入循环的控制问题,但有时也会遇到困难 例:假定现在要写程序求一批输入的实数的平均值 事先不知道可能输入哪些数据。任何数值都可能出现在要求我们求平均值的数据中 如果选0作为“结束标志”,而实际数据里有0,这个程序就不能正确处理了(任何选择都有问题) 这是最一般的输入控制问题,也很常见。要解决这类问题,就需要进一步理解scanf的功能 C标准库的所有输入函数都采用类似的设计 后面可看到相关情况 深入理解scanf scanf的返回值是int类型,它顺序处理格式串,根据格式串的要求完成输入、转换和对变量的赋值 工作正常结束时返回所完成的数据转换项数 如果执行一开始就遇到文件结束,就返回一个特殊符号常量 EOF(是一个int值,后面介绍) 如果没处理完整个格式串就失败了,它返回已经完成的数据转换项数(一个整数) scanf 将输入得到的数据与正在处理的转换描述比较 如果相符就完成一项转换。例如:如果转换描述是 %d,输入得到了一串数字,就成功把它们转换为一个整数 如果实际输入与转换描述不匹配,则转换失败 深入理解scanf 如果转换描述要求读整数或者浮点数,scanf会跳过遇到的空白字符,从下一非空白字符开始处理 scanf要求三方面一致:转换描述、对应参数的类型、实际输入。假如格式串要求做整数转换,赋给整型变量;而实际输入的不是

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档