# Informatica 2 Liceo Scientifico Scienze Applicate/File di Testo

Informatica 2 Liceo Scientifico Scienze Applicate
Copertina Tutti i moduli · Sviluppo
* Linguaggi di programmazioneInformatica 2 Liceo Scientifico Scienze Applicate/Linguaggi di programmazione
* Compilare un programmaInformatica 2 Liceo Scientifico Scienze Applicate/Compilare un programma
* CiaoMondoInformatica 2 Liceo Scientifico Scienze Applicate/CiaoMondo
* AreaRettangoloInformatica 2 Liceo Scientifico Scienze Applicate/AreaRettangolo
* AreaTrapezioInformatica 2 Liceo Scientifico Scienze Applicate/AreaTrapezio
** Compito1Informatica 2 Liceo Scientifico Scienze Applicate/Compito1
* Programmazione ImperativaInformatica 2 Liceo Scientifico Scienze Applicate/Programmazione Imperativa
* Diagrammi di FlussoInformatica 2 Liceo Scientifico Scienze Applicate/Diagrammi di Flusso
* Operatori AritmeticiInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Aritmetici
* Istruzione ifInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione if
** Esercizio Equazione 2^ gradoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Equazione 2^ grado
** Esercizio Calcola lo ScontoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto
** Esercizio Calcola lo Sconto2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto2
* Operatori LogiciInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Logici
** Esercizio x interno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x interno all'intervallo
** Esercizio x esterno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x esterno all'intervallo
* Istruzione switchInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione switch
** Esercizio Scelta EquazioneInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Scelta Equazione
* Altre Istruzioni di Scelta o DiramazioneInformatica 2 Liceo Scientifico Scienze Applicate/Altre Istruzioni di Scelta o Diramazione
* Istruzioni di RipetizioneInformatica 2 Liceo Scientifico Scienze Applicate/Istruzioni di Ripetizione
** Es (do-while) Indovina il numeroInformatica 2 Liceo Scientifico Scienze Applicate/Es (do-while) Indovina il numero
** Es (while) La nonna è stancaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) La nonna è stanca
** Es (for) Somma di 5 numeriInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Somma di 5 numeri
** Es (for) Analisi sequenza datiInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Analisi sequenza dati
** Es (for) Sequenze NumericheInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Sequenze Numeriche
** Es (for) SupermarketInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Supermarket
** Es (while) Bisca ClandestinaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) Bisca Clandestina
* Compito2Informatica 2 Liceo Scientifico Scienze Applicate/Compito2
* I vettoriInformatica 2 Liceo Scientifico Scienze Applicate/I vettori
** Es Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es Usiamo i vettori
** Es2 Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es2 Usiamo i vettori
** Es3 Supermarket con vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es3 Supermarket con vettori
** Compito dic 2019Informatica 2 Liceo Scientifico Scienze Applicate/Compito dic 2019
** BubbleSortInformatica 2 Liceo Scientifico Scienze Applicate/BubbleSort
** Ricerca DicotomicaInformatica 2 Liceo Scientifico Scienze Applicate/Ricerca Dicotomica
* Matrici e ArrayInformatica 2 Liceo Scientifico Scienze Applicate/Matrici e Array
** Es matrici battaglia navaleInformatica 2 Liceo Scientifico Scienze Applicate/Es matrici battaglia navale
** Es matrici 1Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 1
** Es matrici 2Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 2
* PuntatoriInformatica 2 Liceo Scientifico Scienze Applicate/Puntatori
* StructInformatica 2 Liceo Scientifico Scienze Applicate/Struct
** Es Bubble Sort con StructInformatica 2 Liceo Scientifico Scienze Applicate/Es Bubble Sort con Struct
* FunzioniInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni
* Funzioni Void e non VoidInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni Void e non Void
** esercizi1 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi1 funzioni
** esercizi2 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi2 funzioni
** esercizi3 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi3 funzioni
* BacktrackingInformatica 2 Liceo Scientifico Scienze Applicate/Backtracking
* TemplateInformatica 2 Liceo Scientifico Scienze Applicate/Template
* FileInformatica 2 Liceo Scientifico Scienze Applicate/File
** File di TestoInformatica 2 Liceo Scientifico Scienze Applicate/File di Testo
** File BinariInformatica 2 Liceo Scientifico Scienze Applicate/File Binari
** File RecordsInformatica 2 Liceo Scientifico Scienze Applicate/File Records
** Es FilesInformatica 2 Liceo Scientifico Scienze Applicate/Es Files
* Esercizi VacanzeInformatica 2 Liceo Scientifico Scienze Applicate/Esercizi Vacanze
** Esercizi1Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi1
** Esercizi2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi2
** Esercizi3Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi3
* Olimpiadi Informatica
** NobileChimicoInformatica 2 Liceo Scientifico Scienze Applicate/NobileChimico
** Sunnydale
** MappaAnticaInformatica 2 Liceo Scientifico Scienze Applicate/MappaAntica
Modifica il sommario

### File di Testo

Le operazioni che di solito si fanno su un file di testo sono :
* creare un file (vuoto) e scriverci una sequenza di dati corrispondenti ai valori di alcune variabili del nostro programma in C
* aprire un file (esistente) e leggere i dati in sequenza (caricandoli in alcune variabili del programma in C)
* aprire un file (esistente) e aggiungere in coda altre informazioni.
Per scrivere i programmi che usano i comandi sui files del C++ aggiungiamo la libreria
dopo averlo fatto abbiamo a disposizione due nuovi tipi di dato
* ifstream che serve per gestire un file di input ( da cui possiamo leggere le informazioni e caricarle nelle variabili del programma)
* ofstream che serve per gestire un file di output ( su cui possiamo scrivere le informazioni contenute nelle variabili del nostro programma)
Per inviare dei dati su un files di output usiamo l'operatore << (operatore di inserimento) e per leggere dei dati da un files di input usiamo l'operatore >> (operatore di estrazione).
Uno stream è un file oppure rappresenta un qualsiasi dispositivo di I/O visto/gestito come se fosse un file. La cosa non è troppo strana , pensiamo a un dispositivo di Input come la tastiera a cui e' associato di default lo stream cin , per trasferire un dato dalla tastiera a una variabile si e' usato (inconsapevolmente) comandi del tipo cin>>a; , per visualizzare (trasferire) un dato sul monitor del computer (dispositivo di output) si e' usato lo stream cout con comandi del tipo cout<<"Ciao"<<nome<<endl;
Il fatto di aver equiparato i dispositivi di I/O a semplici file ne permette una gestione semplificata che si astrae dal reale funzionamento del dispositivo. Detto in altre parole chi scrive cin>>a; non si deve preoccupare di come la tastiera funzioni dal punto di vista meccanico/elettronico , di quali codifiche/decodifiche vengano impiegate e di come riesca a inviare i dati nella memoria ram.
Ora per creare un file di output diamo i seguenti comandi:
// associo allo stream fo il file milan.txt, se il file non dovesse esistere viene creato, se esiste viene sovrascritto da un file con lo stesso nome ma vuoto
poi se
possiamo scrivere questi dati sul file usando i comandi:
Ora nel file mila.txt troviamo (aprendolo con un editor di testo , ad esempio notepad.exe) i seguenti dati
chiudiamo il file
la chiusura del file ci assicura che tutti i dati scritti siano effettivamente trasferiti nel file ed inoltre libera le risorse del Sistema Operativo impegnate per la gestione del file stesso.Per capire la frase "effettivamente trasferiti " bisogna sapere che le operazioni di scrittura/lettura dei dati sono lente e si preferisce accumulare una serie di operazioni di lettura/scrittura nella memoria ram del computer in un'area detta buffer (memoria temporanea) prima di darne effettiva esecuzione sull'hard disk
Un altro modo per garantire l'effettivo trasferimento dei dati , senza dover chiudere il file e' di usare il comando.
Close ( ) è una funzione (che nella programmazione OOP si chiamano metodi) che viene applicata a una certa struttura dati (che nella programmazione OOP si chiama oggetto) che nel nostro caso è rappresentata da fo. fo.close( ) significa applica la funzione close( ) sull' oggetto fo , oppure potete pensare che fo.close( ) equivalga a close( fo) , cioè di passare a close ( ) il parametro fo su cui deve lavorare. Quando si analizzerà la OOP (Programmazione orientata agli oggetti) questo modo di impartire i comandi diventerà più chiara.
Ora proviamo a leggere i dati dal file milan.txt ( il file si trova nella cartella del progetto in C ), per farlo
creo qualche variabile
e poi incominciamo a leggere dal file
e nelle variabili ritroviamo i valori precedentemente salvati. Ora ricordiamoci una volta finito di utilizzare il file di chiuderlo.
Se vogliamo aggiungere in coda al file di testo delle altre informazioni si deve
ora se guardiamo il file (tramite notepad.exe) troviamo:
abbiamo aggiunto in coda i dati 45 e 67, possiamo aggiungere altri dati o chiudere il file
In allegato il file per lavorare sui files di testo