2012-07-05 181 views
0

在xcode 4.3中,我已經設置了項目以使用C++ 11:我將語音C++語言方言改爲C++ 11,並將C++標準庫改爲「libC++(LLVM用C++ 11支持的C++標準庫)「。
然後我試圖編譯和執行這個簡單的代碼:C++ 11 getline問兩次輸入

#include <iostream> 

using namespace std; 

int main (int argc, char** argv) 
{ 
    char buffer[100]; 
    cin.getline(buffer,100); 
    cout << buffer << endl; 
    return 0; 
} 

的問題是,它要求我輸入「你好」的input.For例如兩次,流保持打開狀態,等待另一個string.If我輸入另一個字符串,然後打印出「你好」。
如果我不使用C++ 11,則不會發生此問題。
有誰知道如何解決這個問題?我想在不使用std :: string的情況下輸入最多100個字符。

回答

4

這是libC++中的一個錯誤。我很抱歉。它固定在山獅上。你可以通過使用getline(istream&, string&)來解決它:

#include <iostream> 
#include <string> 

using namespace std; 

int main (int argc, char** argv) 
{ 
    std::string buffer; 
    getline(cin, buffer); 
    cout << buffer << endl; 
    return 0; 
}