计算机系统概论十八章.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文档。上传文档
查看更多
第十八章 C中的I/O 18.1 介绍 无论是到还是到文件或是通过网络到另一台计算机所有有用的程序都要执行输出大程序也需要某些输入许多其他的语言一样,输入和输出并不是直接被C语言所支持相反输入和输出I/O)是由一组标准函数标准库函数的是由ANSI C标准严格定义的 在这一章里我们将讨论简单I/O的C标准库里几个函数写输出设备的函数putchar和printf从输入设备读函数getchar和scanf执行文件磁盘上的文件I/O的更通用的函数fprintf和fscanf在本书中我们已经广泛地用printf和scanf在这一章里我们将研究这些函数是如何工作的在这个过程中我们将介绍可变的概念而且将在LC-3栈中的参数用变个数函数调用18.3 I/O,每次一个字符我们从两个C库最简单的函数。函数getchar和putchar每次个字符。输入ASCⅡ码出ASCⅡ码,与LC-3中TRAP的I和O似。 18.3.1 I/O流 从上说,所有基字符的输入输出都流行。一由用在键盘上入的ASCⅡ码字符是一个输入流的例子。个字符键入,会被加到流的结尾处。程序的ASCⅡ码字符,似地被加到流的结尾。换句话说,流的允许我们,有助,因为这两者通常不同(见第八章)。例如,一个程序要执行输出,它就把字符加到输出流尾而不必等待输出结束前一个显示。许多其它的语言如C++也提供相似的。 在C语言里标准输入流称为stdin并且键盘。标准流称为std并且。函数tchar和tchar对这两个流操作。 18.32 putchar 函数putchar是LC-3中的TRAPOUT的高级语言等。函数putchar把传的参数的ASCII码显示在stdout输出流中。它不行类型转换--传的值假定为ASCII码被直接加输出流中。下面的代码断putchar调用都同字符(小写h被显示。一个putchar函数其他函数一样,除了这里函数是标准库中。putchar函数的声明出现在stdio.h的头文件里。它的代码将会在编译链接阶段被链接可执行。char c=h; putchar (c); putchar (h); putchar(104); 18.3.3 getchar 函数getchar 是LC-3中的TRAP高级语言等。它返回stdin输入流中下一个输入字符的ASCII。情况下,stdin输入流是键盘上的字符流。在下面的代码断中,getchar返回下一个键盘上字符的ASCII值。这个返回值被赋值给变量。char c; c = getchar(); 18.3.4 缓冲I/O 运行18.1中的C代码,你会注意到一些奇怪的现象。这个程序提示用户输入第一个字符,等待那个输入。输入个字符(假是z什么都发生。第二个提示出现,就像getchar了键。getchar是专门从键盘输入流中读取单个字符,那样的行为看起来是意料之外的。 这想不到的是由于键盘输入流的缓冲。在大多数的计算机系统里,流是被缓冲的。每个键盘的输入都是被的操作系统软件获,并被保存在一个缓里,直到被释放输入流中。在输入流,当用户回车时,被释放。回车本身换新行字符。所以,在18.1的例子里,如果用户A并按下回车,变量inChar1将等于A的ASCII值(是65),变量inChar2将等于换新行的ASCII值(是10)。缓特别键盘的输入好:按下回车键将允许输入。假如你了某个输出,你又想在程序之前改正它。你可以用格删除,然后按回车输入。输出流被类似的缓。18.2中的程序。这个程序用了一个新的sleep的库函数程序在这里的例子里是5。这个数我们unistd.h的头文件。运行这代码你将注意到a的输出没有你想象的那样。a不是出现五秒迟,出现在这之后,只有在换新行把输出缓释放输出流后。我们说putchar(\n)使得输出被。在行加putchar(\n),这个程序运行不同了。 的缓冲包和的实现。18.4?格式化I/O   函数putchar和getchar简单的I/O任务但是对于非ASCII码的I/O任务。函数printf和scanf更复杂的I/O,而且它们被设计用来更加方便的整的和浮点型数值的I/O。 18.4.1 printf   函数printf的文本写进输出中。用printf我们可以出嵌运行程序产生的数值的ASCII码文。printf函数发生所必的。举个例子,下面的代码输出整变量x的值。这,printf函数必须把整x转换成能被嵌入到输出中的ASCII码字符。 int x; printf(The value is %d\n, x);   总的来说,printf函数把它的第一个参数写到输出中去。第一个参数是格式字符串。它是一个包含着要被显示到输出设备上的文本的字符串(char*类型)。嵌在式字符串是0或更多的说明。 说明指出输出任意参数。说明都

文档评论(0)

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

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

1亿VIP精品文档

相关文档