请教一下怎么获取控制台上面的一行输入

请问一下如何获取控制台上面的一行输入?
用string s; cin>>s 的时候输入"abc def"s只会读出abc,请问如何能将"abc def"都读出来

------解决方案--------------------
[code=C/C++]
string str;
getline(cin,str);
[code]
------解决方案--------------------
char str[256];
memset(str, 0, sizeof(str));
printf("please input:\n");
gets(str);
printf("%s\n", str);
return 0;