Ciao ragazzi,
non riesco a capire dove e il problema in questo codce, continua a darmi
Errore di segmentazione (core dump creato)
class studente{
string nome;
string cognome;
int matricola;
int annoim;
int nesami;
int mediavoti;
public:
studente(){nome="";cognome="";matricola=0;annoim=0;nesami=0;mediavoti=0;}
~studente(){}
void set(string a,string b,int c,int d,int e,int f);
void get();
};
void studente::set(string a,string b,int c,int d,int e,int f)
{
nome=a;
cognome=b;
matricola=c;
annoim=d;
nesami=e;
mediavoti=f;
}
void studente::get()
{
cout<<nome<<endl;
cout<<cognome<<endl;
cout<<matricola<<endl;
cout<<annoim<<endl;
cout<<nesami<<endl;
cout<<mediavoti<<endl;
}
//classe lista
template <typename t> class lista{
struct nodo{
t dato;
nodo *succ;
};
nodo *testa;
public:
lista(){ testa=NULL; }
lista(ifstream &apri, t &nou);
void push(string a,string b,int c,int d,int e,int f,t &nou);
void stampa();
void pop();
};
template <typename t> lista<t>::lista(ifstream &apri, t &nou)
{
string aa="";string bb=""; /**/ int cc=0;int dd=0;int ee=0;int ff=0;
while(!apri.eof())
{
getline(apri,aa);
getline(apri,bb);
apri>>cc;
apri>>dd;
apri>>ee;
apri>>ff;
push(aa,bb,cc,dd,ee,ff,nou);
}
}
template <typename t> void lista<t>::push(string a,string b,int c,int d,int e,int f,t &nou)
{
nodo *temp=new nodo;
nou.set(a,b,c,d,e,f);
temp->dato=nou;
temp->succ=testa;
testa=temp;
}
template <typename t> void lista<t>::pop()
{
nodo *temp=new nodo;
temp=testa;
delete testa;
testa=temp->succ;
}
template <typename t> void lista<t>::stampa()
{
nodo *aux=new nodo;
aux=testa;
do{
aux->dato.get();
aux=aux->succ;
}while(aux!=NULL);
}
//main.cpp
#include <iostream>
using namespace std;
#include <stdio.h>
#include <string>
#include <fstream>
#include "studente.h"
#include "lista.h"
main(){
studente plm;
ifstream apri_file("stud.txt");
lista<studente> primo(apri_file,plm);
apri_file.close();
primo.stampa();
}
chiesto
12 Sep '15, 17:34
sofdifirne94
10●1●1●1
@sofdifirne94: dovresti fornire anche un esempio di file di input.