2013-09-27 45 views
-1

所以我寫了一個簡單的程序,用於C++,我碰到這個問題。該程序基本上要求來自用戶的輸入,並且它將在輸入之後跳過任何空格。用戶輸入後我試圖使用cin.ignore(),但它不起作用。我將如何解決它?我如何解決這個cin.ignore()爲我的getline()?

#include<iostream> 
#include<string> 

using namespace std; 

int main() 
{ 
    string s; 
    cout << "Your name: ";  
    getline(cin, s); 
    cin.ignore(); 

    cout << "You entered: " << s << endl; 
    return 0; 
} 
+2

你忘了描述這個問題。你在期待什麼'cin.ignore()'來解決?你遇到什麼問題? –

回答

1

爲什麼要使用std::cin.ignore()?假設你想跳過潛在的領先空白,你可能想要使用std::ws

std::getline(std::cin >> std::ws, s); 
+0

請注意,換行符也是空格,所以這也會跳過任何按Enter之前的第一個非空白字符 –