2011-06-24 41 views
1

我想使用cin,並且我使用char作爲int類型(你是這樣稱呼它嗎?),它只顯示了什麼類型的一個字母。我怎樣才能得到整個句子?在C++中使用cin

+0

不是CPP很長一段時間,但我相信你想'字符*'和'不char' –

+1

更重要的是,'的std :: string' 。如果我沒有弄錯,告訴'cin'得到一個'std :: string'使它讀取一行(有點像C中的'fgets')。 –

+3

@Joey:不是一行,只有一個字。 'getline'必須用於獲取整條線。 – ildjarn

回答

5

由於您使用C++爲什麼不使用std::string呢?這樣的事情應該做你要找什麼:

#include <iostream> 
#include <string> 

int main() 
{ 
    using namespace std; 
    string sentence; 
    cout << "Enter a sentence -> "; 
    getline(cin, sentence); 
    cout << "You entered: " << sentence << endl; 
} 
+1

我的句子通常很長,並且跨越一行以上,我甚至可以將它們分成多個標點符號,這樣它們肯定比單行更長;實際上我不記得了,因爲它可能是在上學,我上次寫了一個短的句子,足以適合一條線。 –

2

使用cin.getline()

char name[256]; 
cout << "What is your name?\n>"; 
cin.getline(name, 256); 

cout << "Your name is " << name; 
+4

這是正確的,但在C++中使用'std :: string'和自由函數'std :: getline'而不是原始字符數組可能是一個更好的主意,因爲它們更安全,容易發生 – templatetypedef

+0

@templatetypedef TBH,我還沒有用過C++,因爲我不得不在學校,甚至在那之後我想我總是使用std :: string。只是想幫忙,哈哈。 –