[问题] cin.get()与cin.getline()有什么不同?

楼主: freexq (快乐蕃茄)   2017-11-16 21:06:15
请问cin.get()与cin.getline()有什么不同?
我查书上是写
get(str,MAX,DELIM)
用途:撷取字符到阵列 str 中,直到已经撷取了 MAX 个字符或分隔字符
出现为止,分隔字元会留在资料流中。
getline(str,MAX,DELIM)
用途:撷取字符到阵列 str 中,直到已经撷取了 MAX 个字符或分隔字符
出现为止,而且会撷取分隔字符。
什么时后该用 cin.get()
什么时后该用 cin.getline() 呢...?
写了个小程式来测试一下
#include <iostream>
using namespace std;
int main()
{
char a[20],b[20];
/* 执行ok
cin.getline(b,20);
cout<<b<<endl;
cin.get(a,20);
cout<<a<<endl;
*/
//会有问题
cin.get(a,20);
cout<<a<<endl;//以下被吃掉
cin.getline(b,20);
cout<<b<<endl;
return 0;
}
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-11-18 04:20:00
.get()不是底层method 没事不要用吗
作者: peterwu4 (notd)   2017-11-17 10:06:00
get的泛用性蛮高的,最简单的理解应该是char c = std::cin.get(); XD
作者: longlongint (华哥尔)   2017-11-16 22:30:00
读到分隔字符就停囉
作者: uranusjr (←這人是超級笨蛋)   2017-11-17 00:04:00
就跟书上写的一样啊, get 读到换行停, 不拿走换行本身第二个例子 get 看到换行停下, getline 读到的第一个字符就是被留下的换行, 就把换行拿走收工, 得到看到的结果
楼主: freexq (快乐蕃茄)   2017-11-17 07:40:00
getline的使用很好懂,但是不知道什么时候才会用到get?

Links booklink

Contact Us: admin [ a t ] ucptt.com