Lab Oratorio 1
Lab Oratorio 1
Lezione 01
Introduzione
Elaborati
Settimanali
Consigli
Laboratorio di Programmazione CL.B Visual Studio
Compilazione ed
Esecuzione
Progetto
[email protected], [email protected] Debug
Compilazione da
linea di comando
Ingegneria e Scienze Informatiche - Cesena
Esercizio
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Introduzione
Lezione 01
Materiale, Ricevimento, etc..
Introduzione
Elaborati
Settimanali
Consigli
Ricevimento: Visual Studio
Compilazione ed
Materiale (slides, esercizi, codice) reperibile ai link: Esecuzione
Progetto
▶ https: Debug
//virtuale.unibo.it/course/view.php?id=64726 Compilazione da
linea di comando
Tipologia di Lezione:
Esercizio
▶ 60/120 minuti ca. lezione frontale, Variabili in C
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Elaborati Settimanali
Lezione 01
Iscrizione cartella Google Drive.
Introduzione
▶ Vi sarà richiesto di accedere con l’account di Google che avete indicato. Compilazione da
linea di comando
▶ Vi apparirà una schermata con la cartella chiamata con il numero del
Esercizio
vostro gruppo.
▶ In alto a destra c’è il tasto Aggiungi in Drive, accettate Variabili in C
Elaborati
▶ Formato di caricamento degli elaborati: Settimanali
tutti e soli i file richiesti (in genere uno solo). Visual Studio
Elaborati
LAB PROG B
Elaborati Settimanali
Lezione 01
Correzione
Introduzione
Elaborati
Settimanali
▶ I voti sono pubblicati in un’apposita pagina linkata sulla home page del Visual Studio
https://tinyurl.com/mrxe3c9c Compilazione da
linea di comando
▶ Per alcuni progetti sarà reso disponibile un testing framework su
Esercizio
Codeboard.io
Variabili in C
Richieste e problemi:
1. Tutte le richieste relative ai progetti devono essere indirizzate a printf e
specificatori
[email protected] e in cc. [email protected]
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Consigli
Lezione 01
Some Tips...
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Compilazione ed
▶ Non scrivete codice a caso!! Esecuzione
Progetto
▶ Cercate di svolgere gli esercizi proposti
Debug
▶ L’ultima ora di laboratorio è dedicata allo sviluppo Compilazione da
linea di comando
dell’elaborato settimanale,
Esercizio
▶ Domande, domande, domande!!!. Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Ciclo di sviluppo del programma
Lezione 01
Dal problema all’eseguibile
Introduzione
Elaborati
▶ Analisi: leggere bene il testo, individuare una soluzione, Settimanali
Visual Studio
▶ Sviluppo del Codice Sorgente: Organizzare il codice
Creazione Progetto
sorgente C in uno o più file di testo (tramite semplice
Compilazione ed
editor di testo o IDE di sviluppo) Esecuzione
Progetto
▶ Compilazione: Traduzione del codice C in linguaggio Debug
macchina. Il ”codice oggetto” viene salvato in un file Compilazione da
linea di comando
con estensione .obj (non ancora eseguibile). La
Esercizio
compilazione può essere fatta utilizzando un ambiente
Variabili in C
integrato o un compilatore a linea di comando. printf e
▶ Link: Il file oggetto prodotto deve essere combinato con specificatori
scanf e
quello delle funzioni di libreria per generare un specificatori
programma eseguibile (.exe). Scanf: problemi
Elaborati
LAB PROG B
Strumenti
Lezione 01
Ambiente di sviluppo
Introduzione
Elaborati
Settimanali
Visual Studio Consigli
Creazione Progetto
▶ Tra i migliori sul mercato.
Compilazione ed
▶ Debugger molto efficiente ed espressivo. Esecuzione
Progetto
▶ Ricco di plug-in. Debug
printf e
▶ Permette un’agevole scrittura del codice (Intellisense). specificatori
Scanf: problemi
Elaborati
LAB PROG B
Creazione Progetto Visual Studio
Lezione 01
Visual Studio
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
▶ Selezionare la voce create new project Compilazione ed
Esecuzione
▶ Impostare il filtro su linguaggio C++ e scegliere Progetto
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Aggiungere Files al Progetto
Lezione 01
File Sorgente
Introduzione
Una volta aperto il progetto questo sarà vuoto e sarà Elaborati
Settimanali
necessario aggiungere files (.c, .h) al progetto stesso.
Consigli
Aggiungere file sorgente al progetto:
Visual Studio
▶ Nella colonna di sinistra Esplora Soluzioni selezionare Creazione Progetto
File di origine, tasto destro del mouse, Aggiungi → Compilazione ed
Esecuzione
Nuovo Elemento. Progetto
printf e
il nome del file. specificatori
Esercizio
▶ Specificare nel campo testo Nome in fondo alla finestra
Variabili in C
il nome del file. printf e
specificatori
▶ Opzionalmente anche il path dove salvare il file (di
scanf e
default il file viene salvato nella cartella del progetto). specificatori
Elaborati
LAB PROG B
Setup Ambiente
Lezione 01
Linguaggio ANSI C.
Introduzione
C(/TC) (in questo modo il file viene compilato come un file C). Scanf: problemi
Elaborati
LAB PROG B
Setup Ambiente
Lezione 01
Warnings
Introduzione
Elaborati
Settimanali
Consigli
III Step: (Uso delle funzioni ANSI di I/O)
Visual Studio
▶ Nella barra superiore selezionare Progetto.
Creazione Progetto
▶ Dal menù selezionare la voce Proprietà di Nome-Progetto .
Compilazione ed
▶ Nell’albero di opzioni alla sinistra della finestra di dialogo cliccare su Esecuzione
Proprietà di Configurazione e selezionare la voce C/C++. Progetto
▶ Selezionare la voce Preprocessore e nel riquadro destro della finestra di Debug
dialogo inserire la stringa CRT SECURE NO WARNINGS; (in questo Compilazione da
modo disabilitiamo i warnings di sicurezza per alcune funzioni di linea di comando
libreria).
Esercizio
NOTA BENE
Variabili in C
▶ Il Setup delle proprietà di progetto più essere effettuato solo dopo aver
printf e
aggiunto almeno un file al progetto. specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Creazione di un Template di Progetto
Lezione 01
Uso di template personalizzato
Introduzione
Elaborati
Settimanali
Visual Studio
▶ Nel menù scegliere Esporta modello... → Modello di
Creazione Progetto
Progetto. Compilazione ed
Esecuzione
▶ Salvare il template con il nome ProgB.zip nella Progetto
Scanf: problemi
Elaborati
LAB PROG B
Il mio primo programma C
Lezione 01
Hello world
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
# include < stdio .h >
Creazione Progetto
int main () {
Compilazione ed
printf ( " Hello , World !\ n " ) ;
Esecuzione
return 0;
Progetto
}
Debug
▶ Inclusione degli header di libreria
Compilazione da
▶ Funzione main(): funzione principale e punto di inizio per l’esecuzione di un programma. linea di comando
▶ printf: funzione di libreria per la stampa di caratteri a video Esercizio
▶ system: funzione di libreria per eseguire comandi della shell del sistema operativo. (in questo
caso è commentata e non sarà eseguita) Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Compilazione Progetto
Lezione 01
Introduzione
Elaborati
Settimanali
Visual Studio
2. Dal menù selezionare Compila Soluzione (Shortcut F7)
Creazione Progetto
3. I messaggi di compilazione (errori, warnings, etc..) Compilazione ed
Esecuzione
vengono stampati nella box Output in basso nella Progetto
finestra principale. Debug
Esercizio
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Esecuzione Progetto
Lezione 01
Elaborati
2. Dal menù selezionare Avvia Debug (Shortcut F5) Settimanali
Creazione Progetto
Nella barra superiore possiamo cambiare la configurazione di
Compilazione ed
compilazione: Debug: che attiva tutto il framework per il Esecuzione
Progetto
debug alla vostra applicazione (più lento)
Debug
Compilazione da
linea di comando
Esercizio
Variabili in C
Release: che esegue l’applicazione senza debug e con flag di printf e
ottimizzazione (più veloce). specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Debug
Lezione 01
Visual Studio
Creazione Progetto
Compilazione ed
Esecuzione
Progetto
Debug
Esercizio
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Debug (II)
Lezione 01
Introduzione
Creazione Progetto
Compilazione ed
Esecuzione
Lo spostamento della freccia gialla ci indica a che punto Progetto
Debug
siamo nell’esecuzione del programma.
Compilazione da
linea di comando
Esercizio
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Debug (III)
Lezione 01
Monitoraggio Variabili
Introduzione
Elaborati
Settimanali
Compilazione ed
Esecuzione
Progetto
Debug
Compilazione da
linea di comando
Esercizio
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Compilazione
Lezione 01
Compilazione da linea di comando
Setting delle variabili di percorso e di ambiente Introduzione
Elaborati
▶ Uso dei collegamenti del prompt dei comandi dal menu Settimanali
di Visual Studio Consigli
▶ Aprire una finestra del prompt dei comandi per gli Visual Studio
Compilazione ed
In alternativa: Esecuzione
Progetto
▶ Aprire una finestra del prompt dei comandi (cmd)
Debug
▶ Eseguire /Programmi (x86)/Microsoft Visual
Compilazione da
Studio 12.0/VC/vcvarsall.bat x86: linea di comando
Esercizio
Compilazione
Variabili in C
▶ Posizionarsi nella directory in cui sono caricati i file
printf e
sorgenti specificatori
library/f35ctcxw.aspx.
LAB PROG B
Esercizio
Lezione 01
Introduzione
Elaborati
Settimanali
Creazione Progetto
2. Rinominare il file sorgente come elaborato0.c
Compilazione ed
Esecuzione
3. Zippare il file in elaborato0.zip Progetto
Compilazione da
5. N.B per i gruppi composti da 2 studenti il secondo linea di comando
studente caricherà su drive il file elaborato0rev.zip Esercizio
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Variabili in C
Lezione 01
Dicharazione e assegnamento
Introduzione
Elaborati
Settimanali
Consigli
Compilazione ed
▶ La funzione sizeof() restituisce il numero di byte Esecuzione
Progetto
necessari per una variabile
Debug
char a = ’r ’; Compilazione da
int z , dimZ ; linea di comando
float y = 7.0 , y1 ;
double x = 3.3621 e -4932; Esercizio
y1 =4.5;
z =25; Variabili in C
dimZ = sizeof ( z ) ;
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Variabili in C
Lezione 01
Errori comuni
Introduzione
Elaborati
Settimanali
▶ Usare una variabile prima di dichiararla Consigli
Creazione Progetto
▶ Usare una variabile prima di inizializzarla
Compilazione ed
▶ Assegnare ad una variabile di un tipo un valore di altro Esecuzione
Progetto
tipo (es un float a un int) Debug
▶ .... Compilazione da
linea di comando
Esercizio
int x ,y , z ;
Z =25; /* Z non stata d i c h i a r a t a */ Variabili in C
z =24.5; /* warning : c o n v e r s i o n e da ’ double ’ a ’ int ’. P o s s i b i l e
printf e
perdita di dati . */
specificatori
x = y + z ; /* y non stata i n i z i a l i z z a t a */ scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Funzioni di I/O
Lezione 01
printf,scanf...
Le piu’ comuni funzioni che permettono I/O sono incluse Introduzione
Compilazione da
caratteri che legge da stdin in base al formato linea di comando
specificato (format) e assegna all’elenco di variabili Esercizio
scanf e
putchar ( lettera ) ; /* stampa valore v a r i a b i l e */
specificatori
putchar ( ’a ’) ; /* stampa la costante ’a ’ */
putchar (97) ; /* stampa da codice ascii */ Scanf: problemi
/* Tutte queste sono e q u i v a l e n t i a */ Elaborati
printf ( " % c " , lettera ) ;
LAB PROG B
Specificatori di Formato (I)
Lezione 01
Base
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
Compilazione ed
Esecuzione
Progetto
Debug
Compilazione da
linea di comando
▶ %E: Notazione scientifica
Tipo Specificatore
Esercizio
char %c, %d maiuscola.
int %d, %i Variabili in C
short int %d, %hd ▶ %g: Sceglie il formato più
long int %ld printf e
unsigned int %u, %o, %x compatto tra %e e %f. specificatori
unsigned short int %hu
unsigned long int %lu
▶ %o: Numeri ottali. scanf e
float %f, %F, %e, %E, %g specificatori
double %f, %F, %e, %E, %g ▶ %x: Numeri esadecimali.
long double %lf Scanf: problemi
string, char[] %s
Elaborati
LAB PROG B
Specificatori di Formato (II)
Lezione 01
Lunghezza
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
Compilazione ed
Esecuzione
Progetto
Debug
Compilazione da
Numero minimo di caratteri stampati linea di comando
/* integer */ Esercizio
printf ( " % d \ n " , 42) ; /* Output : 42 */
Variabili in C
printf ( " %1 d \ n " , 42) ; /* Output : 42 */
printf ( " %3 d \ n " , 42) ; /* Output : 42 */ printf e
printf ( " %* d \ n " , 5 , 42) ; /* Output : 42 */ specificatori
/* float */
printf ( " % f \ n " , 42.24) ; /* Output : 4 2 . 2 4 0 0 0 0 */ scanf e
printf ( " %6 f \ n " , 42.24) ; /* Output : 4 2 . 2 4 0 0 0 0 */ specificatori
printf ( " %12 f \ n " , 42.24) ; /* Output : 4 2 . 2 4 0 0 0 0 */
/* string */ Scanf: problemi
printf ( " % s \ n " , " ciao " ) ; /* Output : ciao */
printf ( " %6 s \ n " , " ciao " ) ; /* Output : ciao */ Elaborati
LAB PROG B
Specificatori di Formato (III)
Lezione 01
Decimali
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
Compilazione ed
Esecuzione
Progetto
Debug
▶ %d: Minimo numero di caratteri totali (eventualmente aggiunge 0 a sinistra).
▶ %f: Massimo numero di decimali dopo la virgola. Compilazione da
▶ %s: Massimo numero di caratteri (eventualmente la stringa viene troncata) linea di comando
Esercizio
/* integer */
printf ( " %.4 d \ n " , 42) ; /* Output : 0042 */ Variabili in C
printf ( " %6.4 d \ n " , 42) ; /* Output : 0042 */
/* string */ printf e
printf ( " %.2 s \ n " , " ciao " ) ; /* Output : ci */ specificatori
printf ( " %.6 s \ n " , " ciao " ) ; /* Output : ciao */
scanf e
printf ( " %6.3 s \ n " , " ciao " ) ; /* Output : cia */
specificatori
/* float */
printf ( " %.2 f \ n " , 42.24) ; /* Output : 42.24 */ Scanf: problemi
printf ( " %.4 f \ n " , 42.24) ; /* Output : 42.2400 */
printf ( " %6.4 f \ n " , 42.24) ; /* Output : 42.2400 */ Elaborati
printf ( " %9.4 f \ n " , 42.24) ; /* Output : 42.2400 */
LAB PROG B
Specificatori di Formato (IV)
Lezione 01
Allineamenti, segno, etc..
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
Compilazione ed
Esecuzione
Progetto
Debug
▶ - Allinea a sinistra.
Compilazione da
▶ + Aggiungi il segno anche se il numero è positivo. linea di comando
▶ Aggiungi spazio davanti a numeri positivi.
▶ 0 Aggiungi 0 iniziali fino a width. Esercizio
▶ # Formato alternativo. Variabili in C
/* integer */ printf e
printf ( " %6 d \ n " , 42) ; /* Output : 42 */ specificatori
printf ( " % -6 d \ n " , 42) ; /* Output : 42 */
printf ( " %06 d \ n " , 42) ; /* Output : 000042 */ scanf e
printf ( " % d \ n " , 42) ; /* Output : 42 */ specificatori
printf ( " %+ d \ n " , 42) ; /* Output : +42 */ Scanf: problemi
/* string */
printf ( " %6 s \ n " , " ciao " ) ; /* Output : ciao */ Elaborati
printf ( " % -6 s \ n " , " ciao " ) ; /* Output : ciao */
LAB PROG B
Stampa di caratteri accentati
Lezione 01
Impostazioni locali
Introduzione
Elaborati
Settimanali
▶ La stampa a video dei caratteri accentati può non essere Consigli
Compilazione ed
▶ Occorre impostare nel main(): setlocale(LC ALL,””); Esecuzione
Progetto
# include < locale .h > Debug
# include < stdio .h >
# include < stdlib .h > Compilazione da
int main () { linea di comando
printf ( " locale is % s \ n " , setlocale ( LC_ALL , NULL ) ) ;
printf ( " \n"); Esercizio
setlocale ( LC_ALL , " " ) ;
printf ( " now locale is % s \ n " , setlocale ( LC_ALL , NULL ) ) ; Variabili in C
printf ( " \n");
system ( " PAUSE " ) ; printf e
return 0; specificatori
}
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Standard Input
Lezione 01
scanf()
Introduzione
Elaborati
int scanf ( const char * format ) ; Settimanali
Consigli
# include < stdio .h >
Visual Studio
int main () {
/* Esempio */ Creazione Progetto
int tm , r ;
printf ( " Il senso della vita ?\ n " ) ; Compilazione ed
r = scanf ( " % d " , & tm ) ; Esecuzione
/* Da tastiera digito 42 */ Progetto
printf ( " Il senso della vita % d ed un % d numero \ n " , tm , r ) ;
/* Output : ’ Il senso della vita 42 ed un 1 numero ’ */ Debug
return 0;
} Compilazione da
linea di comando
Esercizio
▶ Dichiarata nel file stdio.h. ▶ scanf() ignora tutti i caratteri di
▶ Legge dallo stdin e mette l’input in una o spaziatura (whitespace) tranne nel caso in Variabili in C
cui lo specificatore di formato sia %c.
più variabili printf e
▶ Dobbiamo specificare gli spazi ammessi
▶ Ritorna il numero di elementi specificatori
nella stringa di input.
effettivamente letti (%, esclusi %*).
▶ Cerca di convertire i caratteri secondo il scanf e
▶ La stringa di controllo del formato e’ specificatori
formato specificato.
simile a quella vista per printf.
▶ Si ferma quando carattere è uno spazio Scanf: problemi
▶ Da utilizzare con molta cautela.
oppure End-of-file.
Elaborati
LAB PROG B
Specificatori di formato (I)
Lezione 01
Introduzione
Elaborati
Settimanali
Consigli
▶ %[. . . ]: Solo alcuni insiemi Visual Studio
Tipo Specificatore
char %c, %[. . . ] di caratteri. Creazione Progetto
int %d
short int %hd ▶ %o: Numeri ottali. Compilazione ed
long int %ld Esecuzione
unsigned int %u, %o, %x ▶ %x: Numeri esadecimali. Progetto
unsigned short int %hu
unsigned long int %lu Debug
float %f
Compilazione da
double %lf
linea di comando
string, char[] %s, %[. . . ]
Esercizio
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
Compilazione ed
Esecuzione
Posso stabilire il numero di caratteri da leggere da tastiera. Progetto
Se il numero di caratteri eccede, l’input viene troncato. Debug
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Specificatori di formato (III)
Lezione 01
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Creazione Progetto
Compilazione ed
Il campo viene letto, ma non viene preso in considerazione. Esecuzione
Progetto
int a = 0; int x ; Debug
scanf ( " % d % d " , &a , & x ) ;
/* Digito 42 24 */ Compilazione da
/* a = 42 , x = 24 */ linea di comando
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
int a = 0; int x = 1; Esercizio
scanf ( " %* d % d " , &a , & x ) ;
Variabili in C
/* uguale a : scanf ("%* d % d " , & a ) ; */
/* Digito 42 25 */ printf e
/* a = 25 , x = 1 */ specificatori
scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Standard Input
Lezione 01
Problemi con la scanf() (I)
Introduzione
Buffer Overflow
▶ Il compilatore genera un warning quando si usa la scanf perchè questa funzione non è safe Elaborati
Settimanali
▶ La scanf può causare problemi di buffer overflow
Consigli
▶ Un buffer overflow si verifica quando in un buffer di memoria di una certa dimensione viene
scritto un dato di dimensioni maggiori. Visual Studio
▶ Ciò comporta che la parte del dato che eccede le dimensioni del buffer venga scritta nelle celle di
Creazione Progetto
memoria adiacenti al buffer, potenzialmente sovrascrivendo altre variabili, o causando un errore
di segmentazione. Compilazione ed
Esecuzione
Eliminare il messaggio di errore Progetto
▶ Nella barra superiore selezionare Progetto.
Debug
▶ Dal menù selezionare la voce Proprietà di Nome-Progetto.
Compilazione da
▶ Nell’albero di opzioni alla sinistra della finestra di dialogo cliccare su Proprietà di
linea di comando
Configurazione e selezionare la voce C/C++.
▶ Selezionare la voce Preprocessore e nel riquadro destro della finestra di dialogo Definizioni Esercizio
preprocessore aggiungere la direttiva CRT SECURE NO WARNINGS
Variabili in C
Scanf: problemi
char myString [10];
scanf_s ( " % s " , myString ,10) ; Elaborati
LAB PROG B
Standard Input
Lezione 01
Problemi con la scanf() (II)
Introduzione
Elaborati
Settimanali
Buffering Consigli
▶ Ogni volta che viene premuto un tasto, il carattere corrispondente viene inserito in un’opportuna
Visual Studio
area di memoria, chiamata buffer. Quando viene eseguita una scanf, i caratteri vengono letti dal
buffer senza svuotarlo completamente per cui letture successive dal buffer possono dare risultati Creazione Progetto
inaspettati.
Compilazione ed
Esecuzione
char car1 ; int int1 ; Progetto
printf ( " Inserire un numero intero : " ) ;
scanf ( " % d " , & int1 ) ; Debug
/* Da tastiera digito 4 CR */
printf ( " Inserire un carattere : " ) ; Compilazione da
scanf ( " % c " , & car1 ) ; linea di comando
printf ( " \ nLetti : %d ,% c \ n " , int1 , car1 ) ;
/* Output : ’ Letti : 4 , ’ */ Esercizio
Variabili in C
Soluzione printf e
▶ Inserire nella scanf anche caratteri di ”spazio” o ”a capo” che devono essere letti specificatori
▶ Svuotare il buffer tra le diverse letture tramite opportune istruzioni (es. getchar(), rewind(stdin); scanf e
specificatori
Scanf: problemi
Elaborati
LAB PROG B
Standard Input
Lezione 01
Soluzioni al buffering
Introduzione
Elaborati
Settimanali
/* 1) Uso di scanf a g g i u n t i v a */
printf ( " Inserire un numero reale : " ) ; Consigli
scanf ( " % f " , & reale1 ) ;
scanf ( " %* c " ) ; /* letto e buttato via */ Visual Studio
printf ( " \ nInserire un carattere : " ) ;
scanf ( " % c " , & car1 ) ; Creazione Progetto
printf ( " \ nLetti : %f ,% c \ n " , reale1 , car1 ) ;
Compilazione ed
Esecuzione
/* 2) uso di spazio prima della lettura del c a r a t t e r e */
Progetto
printf ( " Inserire un numero reale : " ) ;
scanf ( " % f " , & reale1 ) ; Debug
printf ( " \ nInserire un carattere : " ) ;
scanf ( " % c " , & car1 ) ; // elimina e v e n t u a l i spazi e \ n Compilazione da
printf ( " \ nLetti : %f ,% c \ n " , reale1 , car1 ) ; linea di comando
Esercizio
/* 3) Uso di rewind */
printf ( " Inserire un numero reale : " ) ; Variabili in C
scanf ( " % f " , & reale1 ) ;
printf e
rewind ( stdin ) ; /* Si vuota il buffer */
specificatori
printf ( " \ nInserire un carattere : " ) ;
scanf ( " % c " , & car1 ) ; scanf e
printf ( " \ nLetti : %f ,% c \ n " , reale1 , car1 ) ; specificatori
Scanf: problemi
Elaborati
LAB PROG B
Elaborati
Lezione 01
Introduzione
Elaborati
Settimanali
Consigli
Visual Studio
Elaborato 1
Creazione Progetto
▶ Deve essere consegnato un solo file elaborato1.c Compilazione ed
compresso in elaborato1.zip Esecuzione
Progetto
▶ Non c’è framework di testing per il primo progetto Debug
Variabili in C
printf e
specificatori
scanf e
specificatori
Scanf: problemi
Elaborati