麻烦帮看一下程序哪里出问题了。谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/21 17:39:29
#include <iostream.h>
#include <string.h>
#include <iomanip.h>
//using namespace std;
class Tep
{
public:
friend istream& operator>>(istream &,Tep &);//输入电话本
friend ostream& operator<<(ostream &,Tep &);//输出电话本
private:
string str[1][2];//姓名,电话
};
istream& operator>>(istream &input,Tep &t)//重载输入
{
cout<<"请输入姓名:"<<endl;
input>>t.str[0][0];
cout<<"请输入电话:"<<endl;
input>>t.str[0][1];
return input;
}
ostream& operator<<(ostream &output,Tep &t)//重载输出
{
output<<"name:"<<t.str[0][0]<<setw(5)<<"tel:"<<t.str[0][1];
return output;
}
int main()
{
Tep t;
cin>>t;
cout<<t;
return 0;
}

报好几个错,主要是在string str[1][2];
这里,但是,我试过了,只用一个小程序试的C++是允许定义字符串数组的,
所以,我就想不明白,

貌似答错,删了
数组确实有问题,用数组的时候要用std
用std的时候<<就出错
麻烦……
其实你值是定义了两个元素的数组,那么浪费干嘛,直接来char*算了

///////////
#include <iostream.h>
//#include <string>
#include <iomanip.h>
//using namespace std;
class Tep
{
public:
friend istream& operator>>(istream &,Tep &);//输入电话本
friend ostream& operator<<(ostream &,Tep &);//输出电话本
//private:
char* a,b;//姓名,电话
};
istream& operator>>(istream &input,Tep &t)//重载输入
{
cout<<"请输入姓名:"<<endl;
input>>t.a;
cout<<"请输入电话:"<<endl;
input>>t.b;
return input;
}
ostream& operator<<(ostream &output,Tep &t)//重载输出
{
output<<"name:"<<t.a<<setw(5)<<"tel:"<<t.b;
return output;
}
int main()
{
Tep t;
cin>>t;
cout<<t; <