#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“,该怎么做呢?
发布于 2011-11-29 03:17:37
你可以使用
cin.get( name, 20 );或
cin.getline(name, 20);取决于是否要在字符串中使用换行符。
编辑:
如果你想进一步简化你的代码,你可以使用字符串而不是字符数组,那么你就不必担心用户会超过你的缓冲区大小。
string name;
getline(cin, name);
cout << name << endl;编辑2:
正如David Heffernan在评论中指出的那样,我应该解释一下为什么它不能像预期的那样为你工作。当到达空格字符时,提取操作符(operator >>)结束。当到达空字符或文件末尾时,操作员也终止。
https://stackoverflow.com/questions/8301026
复制相似问题