问题遇到的现象和发生背景
在写一个程序的时候,由于添加条目和名称查询功能一直不正常,所以写了下面这段测试代码
但在加入代码中seek函数之前,可以正常循环输入三个变量,加入之后,只能输入一个变量后程序卡住,然后结束
问题相关代码,请勿粘贴截图
#include <iostream>
#include<string.h>
#include <fstream>
#include <iomanip>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class object{
protected:
long int num;//货物编号
char* name;//货物名称
double price;//货物单价
int quantity;//货物数量
double sumprice;//货物总价
public:
object(){
num=0000;
name="null";
price=0.0;
quantity=0;
sumprice=price*quantity;
}
object(long int nu,char* na,double p,int q){
num=nu;
name=na;
price=p;
quantity=q;
sumprice=p*q;
}
void set_object(){
cout<<"请输入货物条目信息"<<endl
<<"顺序为:货物编号,货物名称,货物单价,货物数量"<<endl;
cin>>num>>name>>price>>quantity;
sumprice=price*quantity;
}
void get_object(){
cout<<setw(8)<<setiosflags(ios::left)<<num
<<setw(8)<<setiosflags(ios::left)<<name
<<setw(8)<<setiosflags(ios::left)<<price
<<setw(8)<<setiosflags(ios::left)<<quantity
<<setw(8)<<setiosflags(ios::left)<<sumprice<<endl;
}
void seek(char* na){
int right=strcmp(na,name);
if(right==0){
get_object();
}
}
};
int main(int argc, char** argv) {
object ob[3];
for(int i=0;i<3;i++){
ob[i].set_object();
}
for(int i=0;i<3;i++){
ob[i].get_object();
}
char* na;
cin>>na;
ob[0].seek(na);
return 0;
}
运行结果及报错内容
当写完seek函数的代码后,无论加不加入主函数都会造成只能输入一个object变量后程序卡住结束
我的解答思路和尝试过的方法
之前曾经把类内的num等对象写为公有类型,造成输入不正常,随后改为受保护类型,随后输入正常
我想要达到的结果
蹲蹲如何能让输入函数正常工作以及如何达成名称查询功能