c++ - getline(cin.name) 被跳过

标签 c++ function input

我从 C++ 中的一个函数调用一个函数,该函数具有 getline(cin,name) 行,其中 name 是一个字符串。第一次通过循环时,程序不等待输入。它将通过循环的所有其他传递。有什么想法吗?

void getName (string& name)
{ 
     int nameLen; 
      do{
          cout << "Enter the last Name of the resident." << endl << endl
              << "There should not be any spaces and no more than 15"
              << " characters in the name."  << endl;



         getline(cin,name);
            cout << endl;
            nameLen = name.length();// set len to number of characters input

         cout << "last" << name << endl;
         }
      while (nameLen < LastNameLength);   
      return;
}

最佳答案

确保自上次从 cin 读取内容后没有遗漏,例如:
在你的程序的前面一点:

int number;
cin >> number;

您提供的输入:

5

程序后面:

getline(cin,name);

getline 似乎不会被调用,而是它收集了您上次输入时的换行符,因为当您使用 cin >> 时它会留下新行.

关于c++ - getline(cin.name) 被跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236645/

相关文章:

python - 如果它的键存储在变量中,如何获取字典中的值?

javascript - 如何直接显示input的值

显示间隔的 HTML 输入范围

c - 如何创建和调用指向函数的指针

c++ - 简单的用户输入验证不起作用

c++ - 有没有办法用带有多个参数的函数调用 std::transform

c++ - Linux信号功能的SIG_ERR会在什么情况下发生?

c++ - 沿类层次结构的函数指针强制

c++ - 从 Windows 服务检测 SD 卡插入?

c++ - 什么时候对象足够大以至于通过引用而不是通过值传递它可以提高性能?