Svolgiamo insieme Problema con la stampa di una struct tramite librerie

Quentin Tarantino

Administrator
Utente Premium
7 Gennaio 2017
18
3
3
E' un semplice programma che dovrebbe prendere dei valori da file e stamparli a video ho preso spunto per il mio programma da Che C serve.

Questo è il mio file un block notes .txt contente nome cognome e voto d'esame:
angelo ferrara 20
antonio esposito 18
franco rossi 25
vincenzo di filippo 26
carlo de luca 29

Queste sono le mie librerie:
C++:
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>
using namespace std;

#define N 100
#define M 100



typedef char Stringa [N];
struct Studenti{
    Stringa Nome;
    Stringa Cognome;
    int Voto;
};
typedef Studenti Alunni[M];
void carica_voti(Alunni, Stringa, fstream &, int *);
void stampa_voti(Alunni, int );

Queste sono le mie funzioni:
C++:
#include "studentilib.h"

void carica_voti(Alunni a,Stringa nome, fstream &f, int *dim){
   
    int m=0;
    cout<<"Inserisci nome del file dei stipendi: ";
    cin.getline(nome,STR_MAX-1, '\n');
    f.open(nome,ios::in);
    if(!f){
       
        cout<<"Errore nell'inserimento  del percorso del file \n";
        exit(1);
       
    }
    else{
       
        while(!f.eof()){
           
            f>>a[m].Nome>>a[m].Cognome>>a[m].Voto;
            m++;
           
        }
       
    }

*dim=m;


   
}

void stampa_stipendi( Alunni scolari, int size){
   
    for(int i=0;i<size;i++){
       
        cout<<"\n Dipendente numero "<<i;
        cout<<"\n Nome:"<<scolari[i].Nome;
        cout<<"\n Cognome:"<<scolari[i].Cognome;
        cout<<"\n Stipendio :"<<scolari[i].Voto<<endl;
       
    }
   
}

C++:
#include "impiegatilib.h"

int main(){
   
    int n=0;
    Alunni dati;
    fstream file;
    Stringa nome_file;
    carica_voti(dati,nome_file,file,&n);
    stampa_voti(dati, n);
}

E questi sono i miei errori:

studenti error.png
 

Seguici su Facebook