1.getline()
用法: 接受一个字符串,可以接收空格并输出。
#include <iostream>
#include <string>//getline
using namespace std;
int main()
{
string str;
getline(cin,str);
cout << str << endl;
return 0;
}
输出结果:
和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数
2.gets()
使用gets()报错 error C3861: “gets”: 找不到标识符 改为gets_s
#include <iostream>
#include <string>
using namespace std;
int main()
{
char m[20];
gets_s(m); //不能写成m=gets();
cout << m << endl;
return 0;
}
可对比【C++常用函数】输入字符cin.get(),cin.getline()理解。
我们把char a[N]这种称字符数组,char s称为一个字符,string str称为一个字符串。
函数 | 方法 |
---|---|
cin.get() | 当处理一个字符数组的时候,cin.get(a,N) |
cin.getline() | 当处理一个字符数组的时候,cin.getline(a,N),与cin.get()的不同点是它具有隐藏的第三个参数’\0’ |
cin.get() | 当处理一个字符时,cin,get(s),这里键盘可以敲入多个字符,但是只识别第一个字符 |
getline() | 它仅用于处理string字符串,getline(str) |
gets_s() | 当处理一个字符数组的时候,gets_s(a) |
总结:
- 当处理一个字符数组的时候,使用gets_s(a)较cin.get() 和cin.getline()少一个参数,更加方便
- 当处理一个字符的时候,使用cin.get()
- 当处理string类型字符串时,使用getline(str)