为什么会出现乱码呢?
我这个程序编译能通过,但是输出结果商品名称时出现乱码,请问是怎么一回事?请高手指点迷津!谢谢了!
#include<iostream.h>
#include<stdlib.h>
class publication
{
protected:
char *title;
float price;
public:
virtual void getData(char *name,float rate);
virtual void putData();
};
void publication::getData(char *name,float rate)
{
title=name;
price=rate;
}
void publication::putData()
{
cout<<endl<<"***商品信息***"<<endl;
cout<<"商品名称"<<title<<endl;
cout<<"价格"<<price<<endl;
}
class book:public publication
{
int pageCount;
public:
void getData(char *name,float price)
{
int pages;
publication::getData(name,price);
cout<<"请输入书的页数:";
cin>>pages;
pageCount=pages;
}
void putData()
{
publication::putData();
cout<<"您输入的书籍的页数为: ";
cout<<pageCount;
cout<<endl;
}
};
class tape:public publication
{
int tapeTime;
public:
void getData(char *name,float price)
{ int times;
publication::getData(name,price);
cout<<"请输入磁带播放时间:";
cin>>times;
tapeTime=times;
}
void putData()
{
publication::putData();
cout<<"磁带播放时间为: ";
cout<<tapeTime<<endl;
}
};
int main()
{
char n;
float p;
publication *ptr;
cout<<"请选择以下菜单:"<<endl;
cout<<"B 您选择的是书籍"<<endl;
cout<<"T 您选择的是磁带"<<endl;
char choice;
cin>>choice;
switch(choice)
{
case 'B':
case 'b':
ptr=new book;
break;
case 'T':
case 't':
ptr=new tape;
}
cout<<"请输入物品名称: ";
cin>>n;
cout<<endl<<"请输入物品价格: ";
cin>>p;
ptr->getData(&n,p);
ptr->putData();
system("pause");
}