我從C++中的一個函數調用函數,該函數的行號爲getline(cin,name)
,其中name是一個字符串。第一次通過循環,程序不會等待輸入。它將在所有其他循環中通過。任何想法爲什麼?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;
}
在調用函數之前,可能還有一些數據仍在等待從stdin中讀取。 –
請提供一個*小而完整的*程序來證明這個問題。你所描述的問題可能是由於你沒有向我們展示的代碼造成的。 –
題外話:當你的意思是'\ n''時,請不要使用'endl'。 'endl'刷新不必要的低效率輸出流。 –