c++ - 我哪里出错了重新 : data validation c++

标签 c++

<分区>

我有一些代码: 我想输入一个 ID,确保它的长度为 8 个字符,确保每个数字都是一个数字,然后继续询问,直到他们给出正确的输入。在有人标记这个之前,我研究并试图查看给出的答案:c 我不明白为什么它说我输入的 ID 00000002 根据我的代码是无效的 ID。它不工作。谁能帮忙?

void Student::getData(){
    string id_;

    cout << "lastName?" << endl;
    cin >> lastName;

    cout << "firstName?" << endl;
    cin >> firstName;

    cout << "ID?" << endl;
    while(getline(cin,id_) && id_.size() != 8){
    cout << "Invalid ID" << endl;
    }

最佳答案

while(getline(cin,id_) && id_.size() != 8){

这里 getline() 只是获取上一行输入留下的换行符。添加一行以忽略该行之前的其余部分。

cin.ingore(std::numeric_limits<std::streamsize>::max(), '\n');
while(getline(cin,id_) && id_.size() != 8){

关于c++ - 我哪里出错了重新 : data validation c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788399/

相关文章:

android - 无法启动 'org.qtproject.example.testapp'

c++ - 使用代码块在 Windows 7 上运行 TBB 代码

c++ - QGraphicsObject(0) 而不是指针中的 NULL

c++ - RegGetValueA格式/布局

c++ - 在 Linux 中使用 gps timestamp_t 结构设置系统时间

c++ - wcout<<L 中的 L 是什么意思?

c++ - 我该如何解决 ldconfig create link with version number

c++ - scanf 读取格式化输入

c++ - C++中的无名对象

c++ - 在 C++11 中对文本 block 进行字符串化