#include <iostream>
using namespace std;
void main(){
char name[20];
cin>>name; // when I input "This is"
cout<<name<<endl; // output was "This"
}
如何做,當我輸入「這是」,輸出也將是「這是」,而不是「這個」?C++字符變量2字
#include <iostream>
using namespace std;
void main(){
char name[20];
cin>>name; // when I input "This is"
cout<<name<<endl; // output was "This"
}
如何做,當我輸入「這是」,輸出也將是「這是」,而不是「這個」?C++字符變量2字
你可以使用
cin.get(name, 20);
或
cin.getline(name, 20);
根據您是否想在你的字符串中的換行字符。
編輯:
如果您想進一步簡化您的代碼,你可以使用,而不是一個字符數組的字符串,你就不必擔心用戶超過您的緩衝區大小,則即。
string name;
getline(cin, name);
cout << name << endl;
編輯2:
當大衛赫弗南還評論指出,我應該解釋爲什麼預期它不爲你工作。提取操作符(operator >>
)在到達空白字符(在您的案例中爲空格)時結束。當到達空字符或文件末尾時,運算符也會終止。
我認爲如果你的答案能夠提供很好的建議,你就回答了爲什麼只有一個詞正在閱讀的問題,你的答案將會得到改善。然後我可以刪除我的答案。 –
@DavidHeffernan:我添加了一個解釋。謝謝:) – GWW
謝謝,我現在刪除了我的答案,因爲我相信它現在不會提供超出你的內容的東西。 –
千萬不要將'operator >>'直接用於字符數組,你可以打開緩衝區溢出。 –