cin怎么才能遇空格不停止

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

学生管理系统给teacher挑了刺,他在输入学号的时候乱敲一通加了许多空格,而cin遇空格就到下一个cin了,teacher说这样的功能不行

问题相关代码,请勿粘贴截图
        cout << "----现在录入第" << i + 1 << "位同学----" << endl;
        cout << "输入学号:"; cin >> number; cout << endl; cin.clear();
        cout << "输入姓名:"; cin >> name; cout << endl; cin.clear();
        cout << "输入性别:"; cin >> sex; cout << endl; cin.clear();
        cout << "输入年龄:"; cin >> age; cout << endl; cin.clear();
        cout << "输入班号:"; cin >> classnumber; cout << endl; cin.clear();
        cout << "输入专业:"; cin >> majorname; cout << endl; cin.clear();
        cout << "输入系别:"; cin >> department; cout << endl; cin.clear();
        cout << "---------------------------------------" << endl;
        cin.clear();
运行结果及报错内容
我的解答思路和尝试过的方法

尝试cin.clear()但是没用

我想要达到的结果

cin遇空格停止输入但该行空格后忽略

换输入的方法,用scanf("%s", name)