我試圖使用getline函數與CIN一起從鍵盤獲取輸入,但我代碼跳過getline語句,而是轉到下面的cin函數。這是我的代碼和正在發生的事情的截圖。
void addmovie(ofstream& MovieContentsFile) {
string movieTitle;
int movieQuantity;
cout << " \n Add Movie Selected \n " << endl;
cout << "Please type in the movie title and press enter \n" << endl;
getline(cin,movieTitle, '\n');
cout << "Movie: " << movieTitle << "Please type in the amount of copies we have of this movie \n " << endl;
cin >> movieQuantity;
我會很感激爲什麼發生這種情況的解釋和如何避免它在未來
我使用了switch case語句來進行菜單選擇,僅供您參考。所以你會建議嚴格使用以太網getline或cin? –
'switch' /'case'對於選擇一個基於輸入的函數來說是很好的選擇,但與您實際得到輸入的方式無關。一般來說,只要使用'>>'和'getline'中的一個,而不是兩個都是最好的選擇。同時處理兩者是一件痛苦的事情。 – BoBTFish