getline(cin.name)被跳过

use*_*993 4 c++ input function

我从C++中的一个函数调用一个函数,该函数的getline(cin,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;
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ani 6

确保自上次从cin读取内容后没有遗留下来,例如:
在程序的早期阶段:

int number;
cin >> number;
Run Code Online (Sandbox Code Playgroud)

你给的输入:

5
Run Code Online (Sandbox Code Playgroud)

后来在该计划中:

getline(cin,name);
Run Code Online (Sandbox Code Playgroud)

并且getline似乎没有被调用,而是从上次输入时收集了换行符,因为当你使用cin >>它时会留下新行.