#include <iostream.h>
#include <string.h>
#include <stdio.h>class kk{
public: int a;
float b;
char c[100];
friend kk operator + (kk x,kk y);
};
main()
{kk n1;
kk n2;
kk n3;
cout<<"怀n1.a"<<endl;
cin>>n1.a;
cout<<"怀n1.b"<<endl;
cin>>n1.b;
cout<<"怀n1.c"<<endl;
//cin.getline(n1.c,50,' ');
cin>>n1.c;
cout<<"怀n2.a"<<endl;
cin>>n2.a;
cout<<"怀n2.b"<<endl;
cin>>n2.b;
cout<<"怀n2.c"<<endl;
//cin.getline(n2.c,50,' ');
cin>>n2.c;
n3=n1+n2;
cout<<"n3.a="<<n3.a<<endl;
cout<<"n3.b="<<n3.b<<endl;
cout<<"n3.c="<<n3.c<<endl;
return 0;
}
kk operator + (kk x,kk y)
{
kk z;
z.a=x.a+y.a;
z.b=x.b+y.b;
strcpy(z.c,x.c);
strcat(z.c,y.c);
return z;
}
#include <string.h>
#include <stdio.h>class kk{
public: int a;
float b;
char c[100];
friend kk operator + (kk x,kk y);
};
main()
{kk n1;
kk n2;
kk n3;
cout<<"怀n1.a"<<endl;
cin>>n1.a;
cout<<"怀n1.b"<<endl;
cin>>n1.b;
cout<<"怀n1.c"<<endl;
//cin.getline(n1.c,50,' ');
cin>>n1.c;
cout<<"怀n2.a"<<endl;
cin>>n2.a;
cout<<"怀n2.b"<<endl;
cin>>n2.b;
cout<<"怀n2.c"<<endl;
//cin.getline(n2.c,50,' ');
cin>>n2.c;
n3=n1+n2;
cout<<"n3.a="<<n3.a<<endl;
cout<<"n3.b="<<n3.b<<endl;
cout<<"n3.c="<<n3.c<<endl;
return 0;
}
kk operator + (kk x,kk y)
{
kk z;
z.a=x.a+y.a;
z.b=x.b+y.b;
strcpy(z.c,x.c);
strcat(z.c,y.c);
return z;
}
但是,将cin.getline改为cin>>,会存在一个问题,如果输入的字符串包括空格怎么办?cin>>会认为到空格就截止了!我想用cin.getline,但cin.getline 似乎会将上次输入的最后一个字符'\n'装入,因而不等输入就认为已经输入,直接进入下一条语句.我不知道如何处理.而且,cin.getline会限定你输入字符的数目.