1. 程式人生 > >cin跟getline連用問題

cin跟getline連用問題

cin>>與getline的工作方式,流提取運算子根據它後面的變數型別讀取資料,從非空白符號開始,遇到Enter、Space、Tab鍵時結束。getline函式從istream中讀取一行資料,當遇到“\n”時結束返回。
造成程式錯誤結果的原因是,使用者輸入完年齡後按回車結束輸入,把“\n”留在了輸入流裡,而cin不會主動刪除輸入流內的換行符,這樣換行符就被getline讀取到,getline遇到換行符返回,因此程式不會等待使用者輸入。
解決的辦法是手動清除換行符,在cin>>後加上

cin.ignore();