2.2 C++(www.cppentry.com)输入/输出简介
C++(www.cppentry.com)提供了一套新的输入/输出库替代C语言的输入/输出库。虽然程序员仍能使用C语言输入/输出库,但新的输入/输出库提供了一个更容易使用的、更灵活的、可扩展的系统。在这一节里,我们将介绍相关内容以便读者应用这些特性。我们将在第8章详细讨论C++(www.cppentry.com)输入/输出。
在C++(www.cppentry.com)中,程序的输入被看做从键盘、磁盘文件或其他输入源输入的一串连续的字节流;程序的输出被看做是输出到显示器、磁盘文件或其他目标的一串连续的字节流。因此C++(www.cppentry.com)输入/输出也被称做输入/输出流(见图2-2)。
|
| 图2-2 输入/输出流 |
当使用C++(www.cppentry.com)标准输入/输出的变量、函数以及不带参数的操纵器时,必须包含头文件iostream。cin代表标准输入,cout代表标准输出,cerr代表标准出错。虽然cout和cerr的默认输出目的地都是屏幕,但cout是带缓冲的,而cerr是不带缓冲的。C++(www.cppentry.com)中的变量cin、cout和cerr比C语言中的stdin、stdout和stderr具有更强的功能和更大的灵活性。
操作符>>和<<分别用于输入和输出,这两个操作符都能分析所处理数据的数据类型,所以不需要格式化串(printf和scanf需要格式化串)。
例2-7
如果变量x是float型,语句
从标准输入读入一个float型数据,并存入x中。该输入转化为float型是因为x是float型的。如果len是long型,则如下语句
将len的值写到标准输出。因为len是long型的,所以输出为从long型转变而来的。
例2-8演示在一条语句中如何对多个变量进行读写。
例2-8
下面的程序提示用户输入一个int和一个float数据,并写到标准输出。
操作符>>和<<是从左结合的,所以语句
第一个值读入到id,下一个值被读入到av。同样,语句
首先输出带有一个空格的字符串Id,然后输出id的值,再另起一行,等等。
输入操作符>>的默认动作是在读入下一个输入项前忽略后面的空格。这与C库函数scanf很相似,但有点差别:即使变量是char类型,操作符>>仍会在读入字符前忽略空格。在后一小节,我们将讨论如何改变这种忽略空格的默认动作。
在需要提供真值或假值的地方(例如在while语句中),像
这样的表达式,如果一个值输入val中,则被转换为真,否则为假。
例2-9
本程序不断从标准输入读入数据,直至用户输入end-of-file标志,然后输出读入数据的总和。