ACM-第1课-正确处理输入输出.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACM 第一课 正确处理输入输出 输入输出原理 之所以我们平时编程输入输出都是在一个黑框框里面完成的,是因为你输入流和输入流都是在这个黑框框里面看到的。所以导致好多同学看到“Sample Input” 1 2 3 4 5 6 7 8 想到的是先把所有输入存起来,然后再输出a+b的结果。因为这样在黑框框里面看到的结果才和标准的一样。 如果你真的明白了什么是输入输出流,你就不会这么写了。 如上图,你给程序一个输入流,经过程序处理后,会给出一个输出流。默认情况下,输入流由键盘敲入,就是俗称的黑框框。输出流的显示也是在黑框框里面。如果我们人工改变它,比如,输入流成了一个文本文档,输出流也成了一个文本文档。 将这两项分开。你现在就应该明白为啥会这样写了吧? 其中 用途是将输入流重定向为一个文档文件 in.txt 同理 是将输出流重定向为一个文档文件 out.txt 打开当前cpp 文件所在目录 新建一个 名字为in 的txt文档 ,在里面输入 1 3 4 5 6 7 保存,然后执行上一段代码,会自动生成一个out.txt 打开里面,你就看到输出结果 5 9 13 怎样?是不是和题目给的 sample in 和sample out 格式看起来一样了? 所以你在考虑编程的时候要把输入输出流分开考虑。不必先把所有输出流存下来然后输出,来一个输一个就OK了。 细心的人会发现我在循环里面写的是 EOF 是 end of file 明白了吧?默认系统给他的值是-1 用-1 替换EOF 也行,不过为了程序的可阅读性。还是用EOF好。 为啥不用cin?cin,cout 的处理速度很慢,之所以你没有体会到,是因为给你的用力少,如果给你1000000000个用力,cin 接收字符的速度慢就会被放大,有的题就会超时。所以建议大家全用scanf 和printf 。 Scanf函数返回值就是读出的变量个数,如:scanf( “%d %d”, a, b ); 如果只有一个整数输入,返回值是1,如果有两个整数输入,返回值是2,如果一个都没有,则返回值是-1。所以用来结束程序。好多人用while(1) 晕,不超时才怪。 常见的输入 1), Input The input will consist of a series of pairs of integers a and b, separated by a space, one pair of integers per line. Sample Input 1 5 10 20 这种输入是以EOF 为文件结尾,所以只要检测EOF就OK了。就是上面我写的那种方法。 2), Input Input contains an integer N in the first line, and then N lines follow. Each line consists of a pair of integers a and b, separated by a space, one pair of integers per line. Sample Input 2 1 5 10 20 先给出测试用力个数n,然后 给出n行。 解决方法就是先接收字符n ,然后控制循环循环n次,每次接收两个数。代码不提供了,自己写。 3), Input Input contains multiple test cases. Each test case contains a pair of integers a and b, one pair of integers per line. A test case containing 0 0 terminates the input and this test case is not to be processed. Sample Input 1 5 10 20 0 0 结束条件不是EOF了!!是一个指定的 0 0 所以你一定别写成EOF 了。好多用例很阴的 比如 2 3 4 5 0 0 6 6 4 6 如果用EOF结束,你应该知道发生了啥。。。。。。 方法就是输入两个数,检测一下是不是0 0 ,简单吧? 4), 以上三种情况的组合。 给你举个比较复杂的例子: Input Input contains multiple test cases. Each test case contains a integer N, and then N integers follow in the same line. A test case starting with 0 terminates the input and this test case is not to be

文档评论(0)

js1180 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档