cin (pronunciato "see-in").
Il "motore" dietro cin: la libreria iostream
Per poter utilizzare cin e cout, il compilatore C++ ha bisogno di istruzioni specifiche contenute in una libreria standard. Senza queste "istruzioni per l'uso", il computer non saprebbe come gestire la tastiera o il monitor.
#include <iostream>
Lo Stream di Input: cin
Mentre cout invia dati allo schermo, cin preleva dati dalla tastiera e li "estrae" per metterli dentro una variabile. L'operatore >> indica proprio questo flusso verso la variabile.
cin >> nomeVariabile;
La sequenza corretta: Domanda e Risposta
A differenza di Flowgorithm, dove il blocco Input mette automaticamente in pausa il programma con un prompt, in C++ il cin da solo fa apparire solo un cursore lampeggiante. È buona norma far precedere ogni cin da un cout che spieghi all'utente cosa inserire.
| Fase | Istruzione C++ | Effetto a video |
|---|---|---|
| 1. Output (Domanda) | cout << "Quanti anni hai? "; |
Quanti anni hai? _ |
| 2. Input (Attesa) | cin >> eta; |
L'utente scrive 16 e preme Invio |
Input Multiplo
È possibile leggere più valori in sequenza usando un solo cin, separando le variabili con l'operatore >>. Il programma attenderà che l'utente inserisca i valori separati da uno spazio o da un tasto Invio.
// Lettura di due numeri in un colpo solo
cout << "Inserisci base e altezza separate da uno spazio: ";
cin >> base >> altezza;
Esempio
Uniamo tutto: dichiarazione, output di cortesia e acquisizione dati.
#include <iostream>
#include <string>
using namespace std;
int main() {
// 1. Dichiarazione
string nome;
int annoNascita;
int annoAttuale = 2024;
cout << "--- BENVENUTO NEL SISTEMA ---" << endl;
// 2. Input del nome
cout << "Inserisci il tuo nome: ";
cin >> nome;
// 3. Input dell'anno
cout << "In che anno sei nato, " << nome << "? ";
cin >> annoNascita;
// 4. Elaborazione e Output finale
int eta = annoAttuale - annoNascita;
cout << "Ciao " << nome << ", quest'anno compi " << eta << " anni!" << endl;
return 0;
}
cin >> variabile si ferma al primo spazio. Se l'utente scrive "Mario Rossi", cin leggerà solo "Mario". Per leggere nomi con spazi servirà un comando speciale (getline) che vedremo più avanti.
Esercizio
Scrivi un programma che chieda all'utente i dati di un rettangolo:
- Chiedi il valore della base.
- Chiedi il valore dell'altezza.
- Calcola l'area e il perimetro.
- Stampa i risultati in modo elegante, ad esempio:
"Un rettangolo con base 5 e altezza 10 ha un'area di 50."