给出一个组合使用getchar()和getline()的实例,请简要讲一下它们是如何读入数据的。

问题遇到的现象和发生背景

输入示例:
Correct%pw 3
correct%pw
Correct@PW
whatisthepassword!
Correct%pw
#

问题相关代码,请勿粘贴截图
#include<iostream>
using namespace std;
int main()
{
    string kw, s;
    int n, cnt = 1;
    cin >> kw >> n;
    getchar();    // 在这里额外添加一个getchar()有什么作用?
    while(true) {
        if(cnt > n) {
            cout << "Account locked" << endl;
            break;
        }
        getline(cin, s); 
        if(s == kw) {
            cout << "Welcome in" << endl;
            break;
        } else if(s == "#") break;
          else {
            cout << "Wrong password: " << s << endl;
        }
        cnt ++;
    }
    return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

cin.clear();cin.sync();