楼主:
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;
}
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2017-11-17 00:04:00就跟书上写的一样啊, get 读到换行停, 不拿走换行本身第二个例子 get 看到换行停下, getline 读到的第一个字符就是被留下的换行, 就把换行拿走收工, 得到看到的结果