#include <iostream>
using namespace std;
void main(){
char name[20];
cin>>name; // when I input "This is"
cout<<name<<endl; // output was "This"
}
当我输入“This is”时怎么做,输出也是“This is”,而不仅仅是“This”?
答案 0 :(得分:6)
您可以使用
cin.get( name, 20 );
或
cin.getline(name, 20);
取决于您是否需要字符串中的新行字符。
编辑:
如果你想进一步简化你的代码,你可以使用字符串而不是字符数组,你不必担心用户超过你的缓冲区大小,即。
string name;
getline(cin, name);
cout << name << endl;
编辑2:
正如David Heffernan在评论中指出的那样,我应该解释为什么它不能按预期为你工作。提取运算符(operator >>
)在到达空格字符(在您的情况下为空格)时结束。当到达空字符或文件结尾时,运算符也会终止。