当前位置: 首页 > news >正文 德兴网站建设公司美食类网站开发需求分析 news 2025/10/21 11:58:55 德兴网站建设公司,美食类网站开发需求分析,青岛栈桥导游词,网页设计与网站建设实战大全对C输入和输出#xff08;简称I/O#xff09;的讨论提出了一个问题。一方面#xff0c;几乎每个程序都要使用输入和输出#xff0c;因此了解如何使用它们是每个学习计算机语言的人面临的首要任务#xff1b;另一方面#xff0c;C使用了很多较为高级的语言特性来实现输入和…对C输入和输出简称I/O的讨论提出了一个问题。一方面几乎每个程序都要使用输入和输出因此了解如何使用它们是每个学习计算机语言的人面临的首要任务另一方面C使用了很多较为高级的语言特性来实现输入和输出其中包括类、派生类、函数重载、虚函数、模板和多重继承。因此要真正理解C I/O必须了解C的很多内容。为了帮助您起步本书的开始几章介绍了使用 istream 类对象 cin 和 ostream 对象 cout 进行输入和输出的基本方法同时使用了 ifstream 和 ofstream 对象进行文件输入和输出。本章将更详细地介绍C的输入和输出类看看它们是如何设计的学习如何控制输出格式如果您跳过很多章直接学习高级格式可浏览一下讨论该主题的一些小节注意其中的技术而忽略解释。 用于文件输入和输出的C工具都是基于 cin 和 cout 所基于的基本类定义因此本章以对控制台 I/O键盘和屏幕的讨论为跳板来研究文件 I/O。 ANSI/ISO C 标准委员会的工作是让 C I/O 与现有的 C I/O 更加兼容这给传统的 C 做法带来了一些变化。 C 输入和输出概述 多数计算机语言的输入和输出是以语言本身为基础实现的。例如从诸如 BASIC 和 Pascal 等语言的关键字列表中可知PRINT 语句、Writeln 语句以及其他类似的语句都是语言词汇表的组成部分但 C 和 C 都没有将输入和输出建立在语言中。这两种语言的关键字包括 for 和 if但不包括与 I/O 有关的内容。C 语言最初把 I/O 留给了编译器实现人员。这样做的一个原因是为了让实现人员能够自由地设计 I/O 函数使之最适合于目标计算机的硬件要求。实际上多数实现人员都把 I/O 建立在最初为 UNIX 环境开发的库函数的基础之上。ANSI C 正式承认这个 I/O 软件包时将其称为标准输入/输出包并将其作为标准C库不可或缺的组成部分。C也认可这个软件包因此如果熟悉 stdio.h 文件中声明的 C 函数系列则可以在 C 程序中使用它们较新的实现使用头文件 cstdio 来支持这些函数。 然而C 依赖于 C 的 I/O 解决方案而不是 C 语言的 I/O 解决方案前者是在头文件 iostream以前为 iostream.h和 fstream以前为 fstream.h中定义一组类。这个类库不是正式语言定义的组成部分cin和istream不是关键字毕竟计算机语言定义了如何工作例如如何创建类的规则但没有定义应按照这些规则创建哪些东西。然而正如 C 实现自带了一个标准函数库一样C也自带了一个标准类库。首先标准类库是一个非正式的标准只是由头文件 iostream 和 fstream 中定义的类组成。ANSI/ISO C委员会决定把这个类正式作为一个标准类库并添加其他一些标准类如第16章讨论的那些类。本章将讨论标准 C I/O。但首先看一看 C I/O 的概念框架。 17.1.1 流和缓冲区 C 程序把输入和输出看作字节流。输入时程序从输入流中抽取字节输出时程序将字节插入到输出流中。对于面向文本的程序每个字节代表一个字符更通俗地说字节可以构成字符或数值数据的二进制表示。输入流中的字节可能来自键盘也可能来自存储设备如硬盘或其他程序。同样输出流中的字节可以流向屏幕、打印机、存储设备或其他程序。流充当了程序和流源或流目标之间的桥梁。这使得C程序可以以相同的方式对待来自键盘的输入和来自文件的输入。C程序只是检查字节流而不需要知道字节来自何方。同理通过使用流C程序处理输出的方式将独立于其去向。因此管理输入包含两步 将流与输入去向的程序关联起来。将流与文件链接起来。 换句话说输入流需要两个连接每端各一个。文件端部连接了提供了流的来源程序端连接将流的流出部分转储到程序中文件端连接可以是文件也可以是设备如键盘。同样对输出的管理包括将输出流连接到程序以及将输出目标与流关联起来。这就像字节而不是水引入到水管中。 通常通过使用缓冲区可以更高效地处理输入和输出。缓冲区是用作中介的内存块它是将信息从设备传输到程序或从程序传输给设备的临时存储工具。通常像磁盘驱动器这样的设备以 512 字节或更多的块为单位来传输信息而程序通常每次只能处理一个字节的信息。缓冲区帮助匹配这两种不同的信息传输速率。例如假设程序要计算记录在硬盘文件中的金额。程序可以从文件中读取一个字符处理它再从文件中读取下一个字符再处理依此类推。从磁盘文件中每次读取一个字符需要大量的硬件活动速度非常慢。缓冲方法则从磁盘上读取大量信息将这些信息存储在缓冲区中然后每次从缓冲区读取一个字节。因为从内存中读取单个字节的速度比从硬盘上读取快很多所以这种方法更快也更方便。当然到达缓冲区尾部后程序将从磁盘上读取另一块数据。这种原理与水库在暴风雨中收集几兆加仑流量的水然后以比较文明的速度给您家里供水是一样的。输出时程序首先填满缓冲区然后把整块数据传输给硬盘并清空缓冲区以备下一批输出使用。这被称为刷新缓冲区flushing the buffer。 键盘输入每次提供一个字符因此在这种情况下程序无需缓冲区来帮助匹配不同的数据传输速率。然而对键盘输入进行缓冲可以让用户在将输入传输给程序之前返回并更正。C程序通常在用户按下回车键时刷新输入缓冲区。这是为什么本书的例子没有一开始就处理输入而是等到用户按下回车键后再处理的原因。对于屏幕输出C程序通常在用户发送换行符时刷新输出缓冲区。程序也可能会在其他情况下刷新输出例如输入即将到来时这取决于实现。也就是说当程序到达输入语句时它将刷新输出缓冲区中当前所有的输出。与 ANSI C 一致的 C 实现是这样工作的。 流、缓冲区和 iostream 文件 管理流和缓冲区的工作有点复杂但 iostream以前为 iostream.h文件中包含一些专门设计用来实现、管理流和缓冲区的类。C98 版本 C I/O 定义了一些类模板以支持 char 和 wchar_t 数据C11 添加了 char16_t 和 char32_t 具体化。通过使用 typedef 工具C 使得这些模板 char 具体化能够模仿传统的非模板 I/O 实现。 streambuf 类为缓冲区提供了内存并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法ios_base 类表示流的一般特征如是否可读取、是二进制还是文本流等ios类基于 ios_base其中包括了一个指向 streambuf 对象的指针成员ostream 类是从 ios 类派生而来的提供了输出方法istream 类也是从 ios 类派生而来的提供了输入方法iostream 类是基于 istream 和 ostream 类的因此继承了输入方法和输出方法。 要使用这些工具必须使用适当的类对象。例如使用 ostream 对象如 cout来处理输出。创建这样的对象将打开一个流自动创建缓冲区并将其与流关联起来同时使得能够使用类成员函数。 重定义 I/O ISO/ANSI 标准 C98 对 I/O 作了两方面的修订。首先是从 stream.h 到 ostream 的变化用 ostream 将类放到 std 名称空间中。其次I/O类被重新编写。为成为国际语言C必须能够处理需要16位的国际字符集或更宽的字符类型。因此该语言在传统的 8 位 char“窄”类型的基础上添加了 wchar_t“宽”字符类型而 C11 添加了类型 char16_t 和 char32_t。每种类型都需要有自己的 I/O 工具。标准委员会并没有开发两套现在为 4 套独立的类而是开发了1套 I/O 类模板其中包括 basic_istreamcharT, traits\charT 和 basic_ostreamcharT, traitscharT 。traitscharT 模板是一个模板类为字符类型定义了具体特征如如何比较字符是否相等以及字符的 EOF 值等。该 C11 标准提供了 I/O 的 char 和 wchar_t 具体化。例如istream 和 ostream 都是 char 具体化的 typedef。同样wistream 和 wostream 都是 wchar_t 具体化。例如wcout 对象用于输出宽字符流。头文件 ostream 中包含了这些定义。 ios 基类中的一些独立于类型的信息被移动到新的 ios_base 类中这包括各种格式化常量例如 ios::fixed现在为 ios_base::fixed。另外ios_base 还包含了一些老式 ios 中没有的选项。 C 的 iostream 类库管理了很多细节。例如在程序中包含 iostream 文件将自动创建 8 个流对象4个用于窄字符流4个用于宽字符流。 cin对象对应于标准输入流。在默认情况下这个流被关联到标准输入设备通常为键盘。wcin 对象与此类似但处理的是 wchar_t 类型。cout 对象与标准输出流相对应。在默认情况下这个流被关联到标准输出设备通常为显示器。wcout 对象与此类似但处理的是 wchar_t 类型。cerr 对象与标准错误流相对应可用于显示错误消息。在默认情况下这个流被关联到标准输出设备通常为显示器。这个流没有被缓冲这意味着信息将被直接发送给屏幕而不会等到缓冲区填满或新的换行符。wcerr 对象与此类似但处理的是 wchar_t 类型。clog 对象也对应着标准错误流。在默认情况下这个流被关联到标准输出设备通常为显示器。这个流被缓冲。wclog 对象与此类似但处理的是 wchar_t 类型。对象代表流——这意味着什么呢当 iostream 文件为程序声明一个 cout 对象时该对象将包含存储了与输出有关的信息的数据成员如显示数据时使用的字段宽度、小数位数、显示整数时采用的计数方法以及描述用来处理输出流的缓冲区的 streambuff 对象的地址。下面的语句通过只想的 streambuf 对象将字符串“Bjarna free”中的字符放到 cout 管理的缓冲区中cout Bjarne free;ostream 类定义了上述语句中使用的 operator() 函数, ostream 类还支持 cout 数据成员以及其他大量的类方法如本章稍后将讨论的那些方法。另外C 注意到来自缓冲区的输出被导引到标准输出通常是显示器由操作系统提供。总之流的一端与程序相连另一端与标准输出相连cout 对象凭借 streambuf 对象的帮助管理着流中的字节流。 重定向 标准输入和输出流通常连接着键盘和屏幕。但很多操作系统包括 UNIX、Linux 和 Windows都支持重定向这个工具使得能够改变标准输入和标准输出。例如假设有一个名为 counter.exe 的、可执行的 Windows 命令提示符 C 程序它能够计算输入中的字符数并报告结果在大多数Windows系统中可以选择“开始” “程序”再单击 “命令提示符” 来打开命令提示符窗口。该程序的运行情况如下 Ccounter Hello and goodbye! Control-Z simulated end-of-file Input contained 19 characters. C其中的输入来自键盘输出的被显示到屏幕上。 通过输入重定向() 和输出重定向()可以使用上述程序计算文件 oklahoma 中的字符数并将结果放到 cow_cnt 文件中 cow_cnt file: Ccounter oklahama cow_cnt C命令行中的 oklahoma 将标准输入与 oklahoma 文件关联起来使 cin 从该文件而不是键盘读取输入。换句话说操作系统改变了输入流的流入端连接而流出端仍然与程序相连。命令行中的 cow_cnt 将标准输出与 cow_cnt 文件关联起来导致 cout 将输出发送给文件而不是屏幕。也就是说操作系统改变了输出流的流出端连接而流入端仍与程序相连。DOS、Windows 命令提示符模式、Linux 和 UNIX 能自动识别这种重定向语法除早期的 DOS 外其他操作系统都允许在重定向运算符与文件名之间加上可选的空格。 cout 代表的标准输出流是程序输出的常用通道。标准错误流由cerr和clog代表用于程序的错误消息。默认情况下这3个对象都被发送给显示器。但对标准输出重定向并不会影响 cerr 或 clog因此如果使用其中一个对象来打印错误消息程序将在屏幕上显示错误消息即使常规的 cout 输出被重定向到其他地方。例如请看下面的代码片段 if (success)std::cout Here come the goodies!\n; else {std::cerr Something horrible has happened.\n;exit(1); }如果重定向没有起作用则选定的消息都将被显示在屏幕上。然而如果程序输出被重定向到一个文件则第一条消息如果被选定将被发送到文件中而第二条消息如果被选定将被发送到屏幕。顺便说一句有些操作系统也允许对标准错误进行重定向。例如在 UNIX 和 Linux 中运算符 2重定向标准错误。 文章转载自: http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.tqhpt.cn.gov.cn.tqhpt.cn http://www.morning.azxey.cn.gov.cn.azxey.cn http://www.morning.gybnk.cn.gov.cn.gybnk.cn http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn http://www.morning.rpwm.cn.gov.cn.rpwm.cn http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn http://www.morning.rbkdg.cn.gov.cn.rbkdg.cn http://www.morning.rnqnp.cn.gov.cn.rnqnp.cn http://www.morning.wrkhf.cn.gov.cn.wrkhf.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.mrlls.cn.gov.cn.mrlls.cn http://www.morning.rgpbk.cn.gov.cn.rgpbk.cn http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn http://www.morning.bzgpj.cn.gov.cn.bzgpj.cn http://www.morning.blbys.cn.gov.cn.blbys.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn http://www.morning.thnpj.cn.gov.cn.thnpj.cn http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.wtrjq.cn.gov.cn.wtrjq.cn http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn http://www.morning.pbmg.cn.gov.cn.pbmg.cn http://www.morning.nmfml.cn.gov.cn.nmfml.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.wjjxr.cn.gov.cn.wjjxr.cn http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn http://www.morning.tklqs.cn.gov.cn.tklqs.cn http://www.morning.sldrd.cn.gov.cn.sldrd.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.txzqf.cn.gov.cn.txzqf.cn http://www.morning.mdtfh.cn.gov.cn.mdtfh.cn http://www.morning.hgsylxs.com.gov.cn.hgsylxs.com http://www.morning.fbbpj.cn.gov.cn.fbbpj.cn http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.jrwbl.cn.gov.cn.jrwbl.cn http://www.morning.jypsm.cn.gov.cn.jypsm.cn http://www.morning.lxqyf.cn.gov.cn.lxqyf.cn http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.sjwzl.cn.gov.cn.sjwzl.cn http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn http://www.morning.jyjqh.cn.gov.cn.jyjqh.cn http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn http://www.morning.hpkr.cn.gov.cn.hpkr.cn http://www.morning.jxrpn.cn.gov.cn.jxrpn.cn http://www.morning.pszw.cn.gov.cn.pszw.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn http://www.morning.ynryz.cn.gov.cn.ynryz.cn http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn http://www.morning.ryxgk.cn.gov.cn.ryxgk.cn http://www.morning.cwrpd.cn.gov.cn.cwrpd.cn http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.mrskk.cn.gov.cn.mrskk.cn http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.nqbkb.cn.gov.cn.nqbkb.cn http://www.morning.ygwbg.cn.gov.cn.ygwbg.cn http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn http://www.morning.zwsgl.cn.gov.cn.zwsgl.cn http://www.morning.hmhdn.cn.gov.cn.hmhdn.cn http://www.morning.ypjjh.cn.gov.cn.ypjjh.cn http://www.morning.drpbc.cn.gov.cn.drpbc.cn http://www.morning.gczqt.cn.gov.cn.gczqt.cn http://www.morning.hxljc.cn.gov.cn.hxljc.cn http://www.morning.wmfr.cn.gov.cn.wmfr.cn http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com http://www.morning.nkhdt.cn.gov.cn.nkhdt.cn http://www.morning.cwgpl.cn.gov.cn.cwgpl.cn http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn http://www.morning.pkggl.cn.gov.cn.pkggl.cn 查看全文 http://www.tj-hxxt.cn/news/221927.html 相关文章: 做推广适合哪些网站英文网站建设需要准备什么 dede 网站建设模板品牌推广服务 南阳网站排名优化价格logo商标设计 微信公众号怎么进行网站建设电脑系统优化软件 义乌购物网站建设多少钱网络营销做女鞋的网站设计 郏县住房和城乡建设局网站引流推广推广微信hyhyk1效果好 济南手机网站四川省信用建设促进会网站 成都金牛网站建设公司建e室内设计 做网站需要些什么网站创作 网站迁移教材旅游类网站如何做推广 公司域名让做网站的做个网上平台大概要多少钱 自助网站建设系统软件郑州哪家做网站好 支持ipv6网站开发临沂免费模板建站 枣庄学习建设网站培训小语种外贸网站建设 酒店如何做团购网站网站怎么做快捷方式 如何做商业网站网站空间在哪里买 机械毕业设计代做网站c 可以用来做网站吗 做网站推广话术怎么键卖东西的网站 买东西的网站都有哪些聊城哪里可以学网站建设呢 做电商网站需要注意哪些创意100图片欣赏 网站图片一般多大住房和城乡建设部网站 一站式网站建设比较好wordpress 淘客网站 做网站要钱吗广州论坛建站模板 做知识产权服务的网站网页模板下载 可以赚钱吗? 网站建设的技术难点食品类网站模板 网站软件app网络管理系统平台 爱站网ip反域名查询自学网站建设要看什么书 阿里云自助建站教程自适应网站如何做移动适配 武夷山市建设局网站广告模板网站 网站推广渠道怎么做wordpress带会员中心的主题