- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
标准IO
一、流和FILE 对象 当用标准I/O 库打开或创建一个文件时,我们已使一个流与一个文件相关联。流的定向决 了所读、写的字符是单字节还是多字节的。当一个流最初被创建时,它并没有定向。如若在 未定向的流上使用一个多字节I/O 函数,则该流的定向被设置为宽定向的。若在未定向的流 上使用一个单字节I/O 函数,则将流的定向设置为字节定向的。 只有两个函数可以改变流的定向。Freopen 函数清除一个流的定向;fwide 函数设置流的定向。 #include stdio.h #include wchar.h Int fwide(FILE *fp, int mode); 返回值:若流是宽定向则返回正值,若流是字节定向则返回负值;或者若流是未定向的则返 回0。 参数介绍: 1.Fp 表示要设置其定向的那个流; 2.根据mode 参数的不同,fwide 函数执行不同的工作: (1 若mode 参数为负,fwide 将试图使指定的流为字节定向的。 (2 若mode 参数为正,fwide 将试图使指定的流为宽定向的。 (3 若mode 参数为0 ,fwide 将不试图设置流的定向,但返回标识该流定向的值。 说明: 当打开一个流时,标准I/O 函数fopen 返回一个指向FILE 对象的指针fp。该对象(FILE *fp 通常是一个结构,它包含了标准I/O 库为管理该流所需要的所有信息,包括:用于实际I/O 的文件描述符、指向用于该流缓冲区的指针、缓冲区的长度、当前在缓冲区中的字符数以及 出错标志等等。 二、标准输入、标准输出和标准出错 对一个进程预定义了三个流,并且这三个流可以自动地被进程使用,它们是标准输入、标准 输出和标准出错。这些流引用的文件与文件描述符STDIN_FILENO、STDOUT_FILENO 和 STDERR_FILENO 所引用的文件相同。这三个标准I/O 流通过预定义文件指针stdin、stdout 和stderr 加以引用。这三个文件指针同样定义在头文件stdio.h中。 三、缓冲 标准I/O 库提供缓冲的目的是尽可能减少使用read 和write 调用的次数。标准I/O 提供了三种 类型的缓冲: (1 全缓冲:在填满标准I/O 缓冲区后才进行实际I/O 操作。对于驻留在磁盘上的文件通常 是由标准I/O 库实施全缓冲的。在一个流上执行第一次I/O 操作时,相关标准I/O 函数通 常调用malloc 获得需要使用的缓冲区。 (2 行缓冲:在这种情况下,当在输入和输出中遇到换行符时,标准I/O 库执行I/O 操作。 这允许我们一次输出一个字符(用标准I/O fputc 函数 ,但只有在写了一行之后才进行实 际I/O 操作。当流涉及一个终端时,通常使用行缓冲。对于行缓存有两个限制,(1 )因 为标准I/O 库用来收集每一行的缓存的长度是固定的,所以,只要填满了缓存,即使没 有遇到新行符,也进行I/O 操作。(2 )任何时候只要通过标准输入输出库要求从(a ) 一个不带缓存的流,或者(b 一个行缓存的流得到输入数据,那么就会造成刷新所有行 缓存输出流; (3 不带缓冲:标准I/O 库不对字符进行缓冲存储。例如:标准出错流stderr 通常是不带缓 冲的,这就使得出错信息可以尽快的显示出来,而不管它们是否含有一个换行符。 说明: ISO C 要求下列缓冲特征: 1.当且仅当标准输入和标准输出并不涉及交互式设备时,它们才是全缓冲的;2. 标准出错绝 不会是全缓冲的。 一般很多系统默认使用下列类型的缓冲: 1.标准出错是不带缓冲区的;2.如若是涉及终端设备的其他流,则它们是行缓冲的;否则是 全缓冲的。 1、用setbuf 和setvbuf 函数更改缓冲类型 有时候,对任何一个给定的流,我们并不喜欢这些系统默认的情况,则可调用下列函数更改 缓冲类型。 #incldue stdio.h Void setbuf(FILE *restrict fp, char *restrict buf); Int setvbuf(FILE *restrict fp, char *restrict buf, int mode, size_t size ; 返回值:成功返回0 ;出错返回非0 值。 参数介绍: 1. Fp 表示要其缓冲类型的流; 2. 可以使用setbuf 函数打开或关闭缓冲机制。为了带缓冲进行I/O,参数buf 必须指向一个 长为BUFSIZ 的缓冲区
您可能关注的文档
最近下载
- 高中地理高三一轮复习 自然地理 地表形态的塑造 大单元学历案 教学设计附双减作业设计(基于新课标教学评一体化).docx VIP
- 中国历代战略思想教程(转发).doc VIP
- Starter Unit1 Hello!26个字母练习题【人教新目标(2024)版七上英语】.docx VIP
- 2025年特色小镇产业发展与社区安全稳定风险评估报告.docx
- 医师定考题库及答案人文.doc
- 消防设施操作员(中级监控)线下实操考核提问要点.pdf VIP
- 苏教版小学三年级科学下册第一单元《植物的一生》每课参考教案汇总(含4个参考教案).doc VIP
- 皖教版五年级上册综合实践活动7.洗衣服(课件).pptx VIP
- 剧本杀完整剧本 致命喷泉(4人封闭).docx VIP
- 2024全国职业院校技能大赛GZ101婴幼儿健康养育照护赛项赛题(技能实操) .docx VIP
文档评论(0)