C++ primer plus 第17 章 输入、输出和文件C++输入和输出概述
C++ primer plus 第17 章 输入、输出和文件C++输入和输出概述
文章目录
C++ primer plus 第17 章 输入、输出和文件C++输入和输出概述
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
17.1 C++输入和输出概述
多数计算机语言的输入和输出是以语言本身为基础实现的。例如,从诸如 BASIC和Pascal 等语言的关键字列表中可知,PRINT语句、Witein 语句以及其他类似的语句都是语言词汇表的组成部分,但C和C++都
没有将输入和输出建立在语言中。这两种语言的关键字包括for和i,但不包括与IO有关的内容。C语言最初把 IO留给了编译器实现人员。这样做的一个原因是为了让实现人员能够自由的设计 IO函数,使之最适合于目标计算机的硬件要求。实际上,多数实现人员都把O建立在最初为UNIX 环境开发的库函数的基础之上。ANSIC正式承认这个I/O软件包时,将其称为标准输入/输出包,并将其作为标准C库不可或缺的组成部分。C++也认可这个软件包,因此如果熟悉stdioh文件中声明的C函数系列,则可以在 C++程序中使用它们(较新的实现使用头文件cstdio来支持这些函数)。然而,C++依赖于 C++的 IO 解决方案,而不是C语言的 IO 解决方案,前者是在头文件iostream(以前为 iostream.h)和 fstream(以前为fstream.h)中定义一组类。这个类库不是正式语言定义的组成部分(cin和istream 不是关键字);毕竟计算机语言定义了如何工作(例如如何创建类)的规则,但没有定义应按照这些规则创建哪些东西。
然而,正如C实现自带了一个标准函数库一样,C++也自带了一个标准类库。首先,标准类库是一个非正式的标准,只是由头文件iostream和fstream中定义的类组成。ANSI/ISOC++委员会决定把这个类正式作为一个标准类库,并添加其他一些标准类,如第16章讨论的那些类。本章将讨论标准C++ IO。但首先看一看C++O的概念框架
17.1.1 流和缓冲区
C++程序把输入和输出看作字节流。输入时,程序从输入流中抽取字节:输出时,程序将字节插入到输出流中。对于面向文本的程序,每个字节代表一个字符,更通俗地说,字节可以构成字符或数值数据的二进制表示。输入流中的字节可能来自键盘,也可能来自存储设备(如硬盘)或其他程序。同样,输出流中的字节可以流向屏幕、打印机、存储设备或其他程序。流充当了程序和流源或流目标之间的桥梁。这使得 C++程序可以以相同的方式对待来自键盘的输入和来自文件的输入。C+程序只是检查字节流,而不需要知道字节来自何方。同理,通过使用流,C++程序处理输出的方式将独立于其去向。因此管理输入包含两步:将流与输入去向的程