1.getline()
#include<string>
getline()的原型是istream& getline ( istream &is , string &str , char delim );
其中 istream &is 表示一个输入流,譬如cin;
string&str表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);
char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为’\n’,也就是回车换行符(遇到回车停止读入)。
ps: 对于while(getline(cin,str)) 语句,默认回车符停止读入,按Ctrl+Z或键入EOF回车即可退出循环。
string str;
getline(cin, str);
2.cin.getline()
//cin.getline()不需要#include<string>头文件
#include<iostream>
该函数有两个参数。
第一个参数是用来存储输入行的数组的名称。
第二个参数是要读取的字符数量。如果参数是 20,那么最多可以读取 19 个字符,余下的空间用于存储自动在结尾处添加的空字符。
如果在读取 n-1 个字符之前遇到终止字符(第三个参数不写,默认为 ‘\n’ ),则提前结束。
const int size = 20;
char str[size];
cin.getline(str, size);
3.cin.get()
#include<iostream>
get()与getline()区别不是很大,但一个明显的区别是get遇到 '\n '字符后便返回,这时 '\n '还在缓冲区中,所以下次读出来的将是 '\n ',而getline遇到 '\n '也返回,但它会把 '\n '从缓冲区里移除掉
两者都会在读取的字符串后面自动加上 ‘\0’。
cin.get(str1, size);
cin.get(); //读入换行符'\n'
cin.get(str2, size);