PDA

Visualizza la versione completa : [C++] Caricamento file, creazione e stampa di una lista ADT/pila


TheBlackWolf
11-07-2018, 11:32
Il programma molto semplice sto modificando un programma gi caricato su questo forum per migliorarlo e esercitarmi sulle pile per non va e non capisco cosa sbaglio

Questo il mio file txt

rossi
3321
lorenzo
3345
ferrante
2134
lorenzo
3345

Questo la mia libreria :




#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>


using namespace std;


#define N 100


typedef char Stringa [N];


typedef struct {

Stringa Nome;
int Numero;

}Lista;


typedef Lista *Nodo;


void crea_lista(Nodo &L);
void crea_nodo(Nodo , int, Stringa);
void append(Nodo , int, Stringa );
void stampa_lista(Nodo L);

Queste sono le mie funzioni:


#include "ordinamento.h"

void crea_lista(Nodo &L){

fstream file;
Stringa nome_file, Nome;
int num;
cin.getline(nome_file, N-1, '\n');
file.open(Nome, ios::in);
if(!file){

cout<<"Inserimento nome file non trovato \n";
exit(1);

}else{

file>>Nome;
file>>num;
crea_nodo(L, Nome, num);

while(!file.eof()){

file>>Nome;
file>>num;
append(L, Nome, num)

}

}

}




void crea_nodo(Nodo &Temp, Stringa professore, int n){

Temp= new Lista;
Temp->Nome=professore;
Temp->Numero=n;
Temp->next=NULL;

}


void append(Nodo &Testalista, int val, Stringa N){

Nodo prec, corr;

if(Testalista==NULL){

crea_nodo(Testalista,N, val);

}else{

corr=Testalista;
prec=NULL;

while(corr!NULL){

prec=corr
corr=corr->next;

}

crea_nodo(prec->next, N, val);

}

}


void stampa_lista(Nodo L){

while(L!=NULL){

cout<<" \n"<<L->Nome;
cout<<" \n"<<L->Numero;
L=L->next=NULL;

}

}






Questo e il mio main


#include "ordinamento.h"

int main{

Nodo L1;
crea_lista(L1);
stampa_lista(L1);

}


Questi sono gli errori :

29564

oregon
11-07-2018, 19:53
Fai attenzione ... hai scritto

void crea_nodo(Nodo, int, Stringa);

poi chiami

crea_nodo(L, Nome, num);

e la funzione

void crea_nodo(Nodo &Temp, Stringa professore, int n) {

Non noti nulla?

E questo solo l'inizio ... ad esempio questo

Temp->Nome = professore;

che non possibile. ...

Loading