Ed eccoci qua, alla terza lezione. Oggi finalmente arriveremo a creare un vero programma, infatti oggi impareremo una funzione del C che ci permette di ricevere input da tastiera dall'utente.

La funzione in questione è scanf();

La sua sintassi è scanf("stringa di formato", &variabile);

Analizziamo bene l'istruzione, allora le varie stringhe di formato le potete vedere nella tabella della lezione precedente, non sono altro che quelle con % davanti, esempio %d.

&variabile, cioè scriviamo il carattere '&' e subito dopo il nome della variabile senza spazi. Perché?
Perché in questo modo otterremo l'indirizzo della variabile, cioè il "punto" in cui è memorizzata in ram, e infatti la scanf non fa altro che mettere in quell'indirizzo il valore che ci passa l'utente. Di &variabile ne parleremo più avanti quando spiegherò i puntatori. Per il momento vi basta sapere che otteniamo l'indirizzo esadecimale della variabile e basta .

Esempio:

Codice PHP:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    
int num1num2ris;
    
printf("Inserisci il primo numero: ");
    
scanf("%d", &num1);
    
printf("Inserisci il secondo numero: ");
    
scanf("%d", &num2);
    
ris num1 num2;
    
printf("Il risultato e' %d"ris);
    return 
0;

Questo programma chiede semplicemente 2 numeri in input all'utente (interi) e li somma, memorizzando il risultato nella variabile ris, per poi stamparlo a video.

Oggi vi insegno anche una funzione utile, il system("Pause"); che altro non mette il programma in pausa finché l'utente non preme un tasto. Questo serve perché altrimenti il nostro programma alla fine della sua esecuzione si chiuderebbe senza lasciar tempo all'utente di visualizzare il risultato finale.

Va semplicemente messo prima del return 0; , ma comunque potete utilizzare ovunque nel programma, ovunque vogliate fare una pausa e aspettare che l'utente prema un tasto per continuare. Ecco un esempio del suo utilizzo nell'algoritmo sopra:

Codice PHP:
#include <stdio.h>
#include <stdlib.h>

int main()
{
   
int num1num2ris;
   
printf("Inserisci il primo numero: ");
   
scanf("%d", &num1);
   
printf("Inserisci il secondo numero: ");
   
scanf("%d", &num2);
   
ris num1 num2;
   
printf("Il risultato e' %d\n"ris); // stampo un \n per andare a capo, in questo modo il system("Pause"); non si attaccherà al risultato
   
system("Pause");
   return 
0;

Piccolo appunto, i commenti // e /* */ sono dei semplici appunti, il compilatore non li legge, quindi potete scriverci anche la storia della vostra vita , ma di solito si utilizzano proprio per appuntarsi qualcosa nel codice. Utilizzateli!

Anche per questa lezione è tutto, come vedete vi passo le lezioni in pillole perché così riuscite ad assimilarle meglio.