Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A. 2009-2010 Salvatore Cuomo Approfondimenti di C, Stringhe e file 13 Stringhe.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

Puntatori Linguaggio C.
INFORMATICA Altre Istruzioni di I/O
Stringhe di caratteri In linguaggio C.
INFORMATICA I file.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
INFORMATICA I file. © Piero Demichelis 2 File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
I File.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi su stringhe e file 15 Stringhe e file.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 6 Marzo 2016.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Process synchronization
Process synchronization
Gestione della memoria
Ambienti di Programmazione per il Software di Base
I/O redirection AND PIPES
11. Lettura e Scrittura di file in Matlab
La rappresentazione delle informazioni
Introduzione al linguaggio C
Dal problema al processo risolutivo
Terza Lezione → Navigare nel file System → parte 2
Tutorato Elementi di Informatica 2013
Process synchronization
L’AMBIENTE CODE BLOCKS E L’IO
I FILES AD ACCESSO SEQUENZIALE
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Ambienti di Programmazione per il Software di Base
realizzato dal prof.Conti Riccardo
Un editor intelligente!!!
Linguaggio C++ Selezione.
Programmazione e Laboratorio di Programmazione
Secondo Programma in C.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
APPUNTI SUL LINGUAGGIO C Memoria secondaria: File
File System ed Input/Output
I fogli elettronici Microsoft Excel.
APPUNTI SUL LINGUAGGIO C
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Process synchronization
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Esercizio 1 Scrivete un programma C "creaproc" che crea (mediante fork) il numero di processi specificati in input. ad esempio: $> creaproc 7 crea 7 nuovi.
La struttura dei primi programma in C
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata
Programmazione e Laboratorio di Programmazione
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Approfondimenti di C, Stringhe e file 13 Stringhe e file Informatica Programmazione II, modulo di Laboratorio it

La funzione main. È possibile in C passare attraverso la linea di comando di una shell (prompt dei comandi) alcuni argomenti opzionali come ad esempio nomi di file o specifiche di opzioni. Nell’esempio mostriamo una linea di comando ed un programma “prog” a cui sono passati alcuni argomenti. $ prog arg2 arg3 arg4 arg5 Il main deve essere però opportunamente strutturato. Mostra main. Passaggio di parametri ad una funzione main Figura. Esempio

I Parametri della funzione main( ) La funzione main( ) ha 2 argomenti di nome prefissato: argc = intero che fornisce il numero di argomenti della linea di comando; argv = array di puntatori a carattere (visto come array di stringhe) ciascuna stringa contiene uno degli argomenti della linea di comando ( argv[0] contiene il nome del comando stesso int main(int argc, char *argv[]) {... } Parametri

Problema1. Si vuole scrivere un programma che legga da tastiera una sequenza di caratteri e li stampi a video. Problema2. Si vuole scrivere un programma che visualizzi i caratteri ASCII e li stampi a video. Mostra main 1. Mostra main 2. Esempio 2: manipolazione di caratteri Figura. Problema 1 Figura. Problema 2

Le funzioni getchar e putchar, definite nell'header file stdio.h, servono per l'input e l'output di caratteri int getchar() restituisce un intero corrispondente al codice del tasto della tastiera premuto oppure il valore predefinito EOF in caso di segnalazione di fine file int putchar(char c) invia al video il carattere c e restituisce il corrispondente codice del tasto della tastiera se l'operazione di output ha avuto successo Da tastiera il valore predefinito EOF può essere inserito con CTRL+D o con CTRL+Z, a seconda della versione del sistema operativo. I/O dei caratteri

Problema3. Si vuole scrivere un programma che legga da tastiera un testo e lo stampi a video trasformandolo tutto in lettere maiuscole. Mostra main Esempio 3: manipolazione di caratteri

Funzioni definite nell'header file ctype.h per operare sui caratteri prescindendo dalla loro codifica (fatta salva la consecutività dei caratteri numerici '0', '1', … e dei caratteri minuscoli e maiuscoli 'a', 'b', …, 'A', 'B', …): isalpha verifica se l'argomento è una lettera dell'alfabeto isdigit " " " è una cifra islower " " " è una lettera minuscola isupper " " " è una lettera maiuscola ispunct " " " è un carattere di punteggiatura isspace " " " è un carattere di separazione tolower restituisce la lettera minuscola equivalente al carattere miuscolo passato come argomento toupper restituisce la lettera maiuscola equivalente al carattere minuscolo passato come argomento Sono tutte funzioni di tipo intero che servono a simulare il tipo di dato logico, con argomento di tipo carattere Manipolazione di caratteri

Una variabile di tipo char può contenere un solo carattere. Per trattare sequenze di caratteri il linguaggio C introduce le stringhe, intese come array di caratteri in cui è specificato il carattere di terminazione della stringa ('\0'). La figura mostra l’effetto della dichiarazione char giorno[7]="sabato"; Si osservi che char c='a'; indica un unico carattere memorizzato in un'unica locazione di memoria char c[2]="a"; indica una stringa, memorizzata in due locazioni di memoria consecutive contenenti i caratteri 'a' e '\0' Le stringhe

Facciamo un esempio pratico di lettura di una stringa: char giorno[100]; scanf("%s",giorno); Si osservi che la variabile giorno è un array, per cui il secondo argomento passato alla funzione scanf ( giorno ) è l'indirizzo del primo elemento dell'array giorno (&giorno[0]) In giorno verrà memorizzata una sequenza di caratteri immessi in input racchiusa fra caratteri di separazione (spazio, tabulazione, andata a capo, …) In conclusione si ha che: una stringa non può contenere degli spazi l'array che deve contenere la stringa deve essere opportunamente dimensionato Lettura di una stringa

Problema3. Si vuole scrivere un programma che calcoli la lunghezza di una prefissata stringa di caratteri. Mostra main Esempio 4: Lunghezza stringa

Problema3. Si vuole scrivere un programma che copia una prefissata stringa di caratteri. Mostra main Esempio 5: Copia di una stringa

Problema3. Si vuole scrivere un programma che ricerchi in una prefissata stringa di caratteri. Mostra main Mostra function Esempio 6: Ricerca in una stringa

Il linguaggio C standard prevede varie funzioni per la manipolazione di stringhe, contenute nell'header file string.h strlen(s) restituisce la lunghezza della stringa s strcpy(s1,s2) copia s2 in s1 strcmp(s1,s2) confronta le due stringhe e restituisce un intero negativo se s1 s2 strcat(s1,s2) concatena s1 con s2, copiando i caratteri che costituiscono s2 in coda a quelli di s1, e restituendo un puntatore a s1 strstr(s1,s2) ricerca la stringa s2 nella stringa s1, restituendo un puntatore al punto di s1 dove inizia s2 (oppure NULL se s2 non è presente) atof(s) converte la stringa s in un numero reale a doppia precisione, restituendo il risultato in un double atoi(s) converte la stringa s in un numero intero Manipolizione di stringhe

Problema5. Si vuole scrivere un programma che stampi in un file. Problema6. Si vuole scrivere un programma che legga in un file. Mostra main 1 Mostra main 2 Esempio 7: Stampa e lettura da un file

Un file testo è una sequenza di componenti tutti dello stesso tipo caratterizzata dall'accesso sequenziale. Per operare su un file testo, questo deve essere "aperto": fp=fopen("nome_file","tipo_apertura"); con: fp puntatore a file: FILE *fp; "nome_file" stringa contenente il nome del file, incluso il percorso nel file system "tipo_apertura" stringa che specifica il tipo di operazioni da compiere sul file ("r"=solo lettura; "w"=scrittura; "a"=appendi; "r+"=lettura e scrittura ) Una volta terminato di operare su un file, questo deve essere "chiuso": fclose(puntatore_a_file); I FILE

Il C standard prevede alcuni file testo standard: · stdin = standard input (tastiera) · stdout = standard output (video) · stderr = standard error (video) Questi sono sempre predisposti, per cui non devono essere né aperti né chiusi Per la lettura e la scrittura su file testo sono disponibili funzioni analoghe a quelle per i file testo standard: fscanf(puntatore_a_file,"%d",&intero); fprintf(puntatore_a_file,"%d",intero); carattere=getc(puntatore_a_file); putc(carattere, puntatore_a_file); I FILE

I file considerati sinora sono detti file testo: le informazioni contenute nel file, rappresentate in binario nel calcolatore, vengono convertite nel formato del loro tipo di dato e così memorizzate Nei file binari, invece, le informazioni contenute nel file sono memorizzate direttamente in binario. File testo vs. file binari: · i file testo possono essere facilmente manipolati mediante un qualsiasi text editor · i file testo sono trasportabili · i file binari occupano meno spazio · i file binari sono più veloci da leggere e a scrivere I FILE

Problema5. Si vuole scrivere un programma che stampi in un file binario. Problema6. Si vuole scrivere un programma che legga in un file binario. Mostra main 1 Mostra main 2 Esempio 7: Stampa e lettura da un file binario

Per operare su un file binario, questo deve essere "aperto" in modo binario: fp=fopen("nome_file","tipo_apertura"); con "tipo_apertura": · "rb" = solo lettura · "wb" = scrittura · "ab" = appendi Per la lettura e la scrittura su file binario sono disponibili le funzioni: fread(ind_dati, sizeof(dati), num_dati, puntatore_a_file); fwrite(ind_dati, sizeof(dati), num_dati, puntatore_a_file); Operare su un file binario