C++语言程序设计

二、标准输入
程序12-5出现了>>运算符，它是C++中的逐位右移运算符。不过，此运算符在这里也被重载，用于流输入操作，称之为抽取运算符。它不仅完成逐位右移，而且还能够从数据流中抽取数据对象。而数据流可以连接到任何与计算机相连的输入设备，cin是与控制台输入相连。当控制台输入数据时，cin中生成数据并保存到相应变量中，如程序12-5所示。由于>>操作符返回的是istream对象的引用，所以程序12-5可以简化成：
cin>>n>>ch>>pi>>str;
这里有一个问题。在程序12-5中，当输入"5 c 3.14159 hello world!"时，运行结果并不是我们所期望的：
n=5
ch=c
pi=3.14159
string=hello world!
而是：
i=5
ch=c
pi=3.14159
string=hello
str只得到第一个字"hello"，而不是"hello world!"，这是由于输入机制是通过寻找空格来分隔输入的，而空格在"hello"的后面，所以"world!"被截掉了。要解决这个问题，可以使用非格式化抽取的方法。