1.cin与getline()的使用
1)C++编程语言互换流中的标准输入流,需要iostream.h支持,即开始的时候,要有#include <iostream.h>(新版本编译器为#include )。
cin代表标准输入设备,使用提取运算符 “>>” 从设备键盘取得数据,送到输入流对象cin中,然后送到内存。使用cin可以获得多个从键盘的输入值,其具体使用格式如下:
cin >> 表达式1 >>表达式2...>> 表达式n;
cin是最简单常用的获取从控制台输入信息并存入某个变量的函数。直接只使用cin时,一般会加上using namespace std;
但是cin并不会将空格作为字符读取进去,有这种需求的时候,我们可以用getline来代替cin。
2)getline不是C库函数,而是gcc的扩展定义或者C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。(1)到文件结束,(2)遇到函数的定界符,(3)输入达到最大限度。
返回值
成功:返回读取的字节数。
失败:返回-1。
getline(cin,str)函数是处理string类的函数。第二个参数为string类型的变量。读入时第二个参数为string类型,而不是char*,要注意区别
getline()函数的定义如下所示
- istream& getline ( istream &is , string &str , char delim );
- istream& getline ( istream &is , string &str );
is 进行读入操作的输入流
str 用来存储读入的内容
delim 终结符,遇到该字符停止读取操作,不写的话默认为回车
while(getline(cin,str))
{
cout<<str<<endl;
}
注意这里默认回车符停止读入,按Ctrl+Z或键入EOF回车即可退出循环。在这个语句中,首先getline从标准输入设备上读入字符,然后返回给输入流cin,注意了,是cin,所以while判断语句的真实判断对象是cin,也就是判断当前是否存在有效的输入流。