cin.getline()
#include <iostream>
#include<iomanip>
#include<string>
using namespace std;
const int Limit = 255;
int main()
{
char input[Limit];
cout << "Enter a string for getline() processing:\n";
cin.getline(input, Limit, '#'); //输入到input数组,遇到#字符终止,从输入流中删除#字符
cout << "Here is your input:\n";
cout << input << "\nDone with phase 1\n";
char ch;
cin.get(ch); //次处为#字符后一位字符
cout << "The next input character is " << ch << endl;
if (ch != '\n')
cin.ignore(Limit, '\n'); // 清空255个字符直到遇到'\n'字符
cout << "Enter a string for get() processing:\n";
cin.get(input, Limit, '#'); //遇到#字符终止,但保留#字符在输入流中
cout << "Here is your input:\n";
cout << input << "\nDone with phase 2\n";
cin.get(ch); //get保留的#字符
cout << "The next input character is " << ch << endl;
return 0;
}
测试结果:getline()函数丢弃输入中的分界字符#,而get()函数不会
getline
getline实现带空格的输入
#include <iostream>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
string ss;
getline(cin, ss);
cout << ss;
return 0;
}