2016-07-24 23 views
0

我曾嘗試下面的函數中輸入文本的大小,函數來驗證由用戶C++

string checkstring(int sublen){ 

bool quit = false; 

string temp; 
while(!quit){ 
    cin>>temp; 

    if (temp.size()> sublen){ 
     cout<<"\t"<<"Error , Only "<<sublen<<"characters are allowed "<<endl; 

     cin.clear(); 
      getch(); 
    }else{ 
     return temp; 
     quit=true; 
    } 
} 
} 

的問題是,如果我在輸入字符串輸入任何位數,它將跳過幾行。

例如: - 輸入您的姓氏:梅耶爾23,

它跳過下一個問題來自環路

Question Marked with blue has skipped - Please view thus image | Cursor at Red Mark

對不起我的英語不好!請幫忙!

+2

請不要張貼/鏈接到圖像。提供信息作爲*文本*而不是 - 直接*在問題中。此外,如果您的示例是完整且可編譯的,則該示例會更好。 –

+0

你的'main'包含了什麼? –

+0

即使你的代碼說它應該返回一個'string',你的函數似乎什麼都不會返回。 – Polb

回答

4

當您使用>>運算符讀取文本時,它將在空白處分開。如果您希望整行使用std::getline代替。

+0

謝謝!我會試試這個 – Gihan