在使用cin.getline()
函數時,可能會出現忽略輸入的情況是因為在讀取輸入時,可能會殘留換行符或其他特殊字符導致讀取不完整。這可能會導致下一次輸入時直接被忽略。
要解決這個問題,可以在調用cin.getline()
之前使用cin.ignore()
函數清除輸入流中的殘留字符,例如:
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 清除輸入流中的所有字符,直到遇到換行符
cin.getline(str, sizeof(str)); // 讀取輸入
另一種方法是在cin.getline()
之后使用cin.ignore()
來清除換行符,例如:
cin.getline(str, sizeof(str)); // 讀取輸入
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 清除輸入流中的換行符
通過清除輸入流中的殘留字符,可以避免cin.getline()
忽略輸入的問題。