std::getline(cin, s)
第一个参数传递的是输入流:istream(输入流的基类), ifstream, istrstream 的引用;
第二个参数传递的是本地字符串引用,即从输入流读出来的东西要存放的位置。
会跳过getline()的输入
cin >> ch;
getline(cin, s); // 这里没有输入等待,直接跳过
// 原因在于 cin 读取 ch 数据时,会将回车生成的换行符留在输入队列中
// getline()看到换行符,认为是空行,将空的字符串赋给 s
解决: 换为下面一行就可以了,get()会读取到换行符并丢弃掉
(cin >> num).get();
// C++中的getline是忽略换行符的;如果是由GCC编译C类实现,注意可能会读入换行符