Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Autore Francesco Granozio
- Un file di testo denominato 'voti.txt' contiene i cognomi e i voti dei
- compiti di informatica degli alunni della classe IVB
- Sviluppare un programma che:
- --- Carica il file
- --- Stampa il file*/
- #include "pch.h"
- #include <iostream>
- #include <fstream> //Libreria per l'uso dei flussi input / output dei file
- #include <string> //Libreria per l'uso delle stringhe
- #include <cstdlib>
- using namespace std;
- const int V = 20; //Constante per il limite del cognome
- struct alunno { //Struttura dati dello studente
- char n_c[V]; //Vettore di caratteri per il nome
- int voti; //Variabile per i voti
- };
- void carica(alunno &al); //Prototipi di funzione
- void stampa(alunno &al);
- int main() {
- alunno a; //Tipo alunno
- stampa(a); //Procedura di lettura
- carica(a); //Procedura di scrittura
- stampa(a); //Procedura di lettura
- return EXIT_SUCCESS;
- }
- void carica(alunno &al) {
- int ins = 1; //Variabile richiesta inserimento
- int i = 0; //Indice del ciclo
- ofstream fout("C:\\FILE C++\\voti.txt"); //Creo oggetto 'fout' della classe ofstream
- do {
- i++;
- cout << "Inserisci il cognome dell'alunno: ";
- cin >> al.n_c; //Input
- fout << al.n_c << endl; //Trasferisco sul file
- cout << "Inserisci voto in informatica: ";
- cin >> al.voti; //Input
- fout << al.voti; //Trasferisco sul file
- cout << "Vuoi continuare inserimento? (1 per continuare, 0 per terminare) ";
- cin >> ins; //Richiesta di inserimento
- cout << endl << endl;
- if (ins != 0) { //Aggiungo uno spazio in caso non sia stato inserito ancora nulla
- //Ci ho perso 1 ora, perchè mi stampava male i nomi
- fout << endl;
- }
- } while (ins != 0 and i < 5); //Il ciclo si ferma se viene inserito 0 o si raggiunge il limite d'inserimento
- cout << "Scrittura nel file completata con successo" << endl;
- fout.close(); //Chiudo il file
- }
- void stampa(alunno &al) {
- ifstream fin("C:\\FILE C++\\voti.txt"); //Creo oggetto 'fin' della classe ifstream
- cout << "----------STAMPA----------" << endl << endl;
- if (fin.peek() == ifstream::traits_type::eof()) { //Verifico se il file e'vuoto
- cout << "Il file e'vuoto" << endl; //Messaggio di errore
- }
- while (!fin.eof()) { //Finchè ci sono righe scritte stampo il testo del file
- fin >> al.n_c;
- cout << "Cognome dell alunno: " << al.n_c << endl;
- fin >> al.voti;
- cout << "Voto di informatica dell'alunno: " << al.voti << endl;
- }
- fin.close(); //Chiudo il file
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement