cin.get()这里是什么意思

unsigned int size = 0;//初始化车子的数量
cout << "How many cars do you wish to catalog? ";
cin >> size;//输入车辆
cin.get();//???

//等价于 struct car* pcar = new struct car[size];
car* pcar = new car[size];//结构数组,根据输入的车辆来改变,数组
for (unsigned int i = 0; i < size; i++)
{             
    cout << "Car #" << i + 1 << ":" << endl;
    cout << "Please enter the make: ";
    getline(cin, pcar[i].company);

    cout << "Please enter the year make: ";
    cin >> pcar[i].pro_year;
    cin.get();
}

cin.get();这一行为了吃掉多余的回车符。

https://blog.csdn.net/qq_36182852/article/details/88098810

如果不用,回车这个符号会影响下面的输入,你可以去掉试试。

cin>>输入内容和回车进入输入缓冲区;空格和回车都可以区分数据,读取完成后指针停留在回车前边。
这里如果没有cin.get();如果下边有读取程序cin.get()或者cin.getline等等将会浪费一次输入次数来跳过回车符号。

你用到了getline函数,这个函数的功能是返回输入流从当前位置到第一个回车符的字符(即读取一整行),而同时你还只用了cin>>这样的标准输入。
标准输入会自动跳过空格和回车,但是读完一个部分后不会清除后续的空格和回车,这样的操作会对后面的非标准输入产生影响,如下

//'_'表示空格,'<'表示回车
//初始输入流
"123_456<123456<"
//读入第一个数123后
"_456<123456<"
//读入第二个数456后
"<123456<"

这样读入虽然可以自动将空格和回车视为分割符,但是会保留最后的分割符,如果这时候连续调用getline,得到的结果如下

//第一次输出("")后
"123456<"
//第二次输出("123456")后
""

即getline会将标准输入剩下的回车当做一行的终止符,而其实是上一个标准输入的结束符,等于是空行。
因此需要应cin.get输入下一个字符来让getline正常工作。