C++中如何用String类型接受多个英文单词

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:34:04
#include<iostream>
#include<cstring>
#include<string>
int main()
{
using namespace std;
string firstname;
cout<<"Enter your first name:";
cin>>firstname;
while(getchar()!='\n');
cout<<"Enter your last name:";
string lastname;
cin>>lastname;
while(getchar()!='\n');
cout<<"Here's the information in a single string:";
string name;
string temp;
name=lastname;
temp=firstname;
name+=" ,";
name+=temp;
cout<<name;
getchar();
return 0;
}
上面firstname中我输入Betty sue最有只能显示betty请问如何解决!!!

这个问题是个不错的问题。
解决办法如下:
getline(cin,str,'0');//就是说,你输入一行字符,直到你输入0为止。

分析如下:
(1)C++ 的string类定义了一个全局方法:getline。
istream& getline(istream& is,string& s,char delimiter='$').
这个函数是作用在:从STD输入流is中获取字符串,保存到string对象s中,最后一个参数是个默认的结束标记。
(2)不过我个人建议不要使用这个默认的结束标记(\n),因为它会造成要求用户按两次回车的现象,容易让用户迷惑。所以建议用一个当前字符串不会用到的字符。比如'$'等等。可视情况而定。

你的程序可修改如下:
#include<iostream>
#include<cstring>
#include<string>
int main()
{
using namespace std;
string firstname;
cout<<"Enter your first name:";
getline(cin,firstname,'$');//此处就可以获取一行字符串。
//cin>>firstname;
while(getchar()!='\n');
cout<<"Enter your last name:";
string lastname;
cin>>lastname;
while(getchar()!='\n');
cout<<"Here's the information in a single string:";
string