2016-12-17 113 views

回答

1

cin>>Choice;葉輸入緩衝區中的尾隨換行符。然後getline(cin,title);因此讀取一個空行。

通常,最好不要將格式化輸入與來自同一個流的getline混合。

一個快速簡便的解決辦法是使用std::basic_istream::ignore刪除從流的末尾換行符,就像這樣:

cin.ignore(2, '\n'); 
+0

非常感謝:D,它工作 –

0

這種說法

cin>>Choice; 

輸入緩衝區將包含新的生產線後,通過按Enter鍵留下字符。

所以遇到新行字符,直到與getline

if (Choice==1) 
    { 
     getline(cin,title); 

下一條語句讀取一個空字符串。此語句前

插入下面的調用

#include <limits> 

    //... 


    { 
     getline(cin,title); 
     std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

清除緩衝區。