
Hello Guys
I have been working on for hours and hours and I need help becuase I'm stuck . this program which might be super simple for you guys, basically it will read data from the file like " CPE 202 Introduction to Computer Science". and will cout to the screen.
mine works but when I just read in CPE 202 but when I try to add the the third character, I get seg fault and it crashes...
Code:
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
class course
{
public:
course ();//constructor
~course();//destructor
void setdept(char *);
char * getdept();
void setcode(int);
int getcode();
void setclassD(char * );
char * getclassD();
void print() const ;
private:
char * dept;
int code;
char * classD;
};
course::course()
{
dept = new char [20];
classD = new char [20];
classD[0] = '\0';
dept[0]= '\0';
code = 0;
}
course::~course()
{
delete [] dept;
delete [] classD;
dept = '\0';
classD= '\0';
code = 0;
}
void course::setdept(char* dpt)
{
dept = new char [20];
int i = 0;
while(dpt[i]!='\0')
{
dept[i]=dpt[i];
i++;
}
dept[i] = '\0';
}
void course::setcode(int kode)
{
code = kode;
}
char* course::getdept()
{
return dept;
}
int course::getcode()
{
return code;
}
void course::setclassD(char * Des)
{
Des = new char [20];
int i = 0;
while(Des[i]!='\0')
{
classD[i]=Des[i];
i++;
}
classD[i] = '\0';
}
char * course::getclassD()
{
return classD;
}
int main()
{
//declaration
ifstream fin;
int NUM=1;
int i;
int kode;
course * cptr;
char * Des;
char * dpt;
cptr = new course [NUM];
fin.open("course.txt");
for(i=0; i <NUM; i++)
{
fin >>dpt;
(*cptr).setdept(dpt);
fin >> kode;
(*cptr).setcode(kode);
fin.getline( Des, 50 );
(*cptr).setclassD(Des);
}
cout << " <Schedule> " << endl;
cout<<endl;
for(i=0; i<NUM; i++)
{
cout << "Course " << ": " <<(*cptr).getdept() << " "<< (*cptr).getcode() << endl;
cout<<endl;
cout<< " class Des " << ":" <<(*cptr).getclassD()<<endl;
}
system("pause");
return 0;
}
// copy constructors
/*
course::course(const course &rhs)
{
dept = rhs.dept;
code = rhs.code'
classD = rhs.classD;
dept = new char [len+1];
//deep copy
while (rhs.dept[i] ='\0')
{
strcopy();
}
}
*/


still the same issue !!!