经过测试,用cin.getline()读入一行数据时,如果输入的数据大于函数参数中的字符个数n,则getline返回值为0!但cin.get()遇到这种情况的返回值不为0!如图
#include <iostream>
#include <string>
using namespace std;
int main()
{
char b[20];
cout << cin.getline(b, 20, '\n');
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
char b[20];
cout << cin.get(b, 20, '\n');
return 0;
}
所以读入多行数据时,最好不要用while(cin.getline())这种形式判断,除非把参数n设置为很大。
ps:读入一行字符最好用string类里的getline()