C++ char变量2个单词

Wiz*_*ard 1 c++ string char

#include <iostream>
using namespace std;

void main(){
  char name[20];
  cin>>name;         // when I input "This is" 
  cout<<name<<endl;  // output was "This" 
}
Run Code Online (Sandbox Code Playgroud)

当我输入"This is"时怎么做,输出也是"This is",不仅仅是"This"?

GWW*_*GWW 6

你可以用

cin.get( name, 20 );
Run Code Online (Sandbox Code Playgroud)

要么

cin.getline(name, 20);
Run Code Online (Sandbox Code Playgroud)

取决于您是否需要字符串中的新行字符.

编辑:

如果你想进一步简化你的代码,你可以使用字符串而不是char数组,你不必担心用户超过你的缓冲区大小,即.

string name;
getline(cin, name);
cout << name << endl;
Run Code Online (Sandbox Code Playgroud)

编辑2:

正如David Heffernan在评论中指出的那样,我应该解释为什么它不能按预期为你工作.operator >>当到达空格字符(在你的情况下是一个空格)时,提取operator()结束.当到达空字符或文件结尾时,运算符也会终止.