In questa puntata vediamo come gestire input e output con la libreria standard di C++. Abbiamo già visto in azione lo stream di output, cout; ora aggiungiamo lo stream di input, cin, e rendiamo i nostri programmi interattivi.
Il programma
Si comincia includendo iostream. In C++ le variabili vanno dichiarate prima di essere usate, e con il loro tipo: qui un int, cioè un numero intero. Dentro il main scriviamo un prompt su std::cout, leggiamo con std::cin il valore inserito dall’utente e lo infiliamo nella variabile a (cin >> a, con la freccia che va verso la variabile). A questo punto usiamo quello che sappiamo sui costrutti decisionali per decidere se il numero è positivo, negativo o uguale a zero:
#include <iostream>
int main() {
int a;
std::cout << "Inserisci un numero: ";
std::cin >> a;
if (a > 0) {
std::cout << "Il numero e' positivo" << std::endl;
} else if (a < 0) {
std::cout << "Il numero e' negativo" << std::endl;
} else {
std::cout << "Il numero e' uguale a 0" << std::endl;
}
return 0;
}
Il programma fa una cosa semplicissima: chiede un numero e dice se è positivo, negativo o nullo. La cosa interessante è che lo fa con gli stream: cout per l’output e cin per l’input.
Compilare e provare
Compiliamo (con g++ direttamente, o con il Makefile della puntata sui costrutti decisionali) e proviamo:
g++ -g -o main main.cpp
./main
Lanciandolo tre volte, con 5, 0 e -1:
Inserisci un numero: 5
Il numero e' positivo
Inserisci un numero: 0
Il numero e' uguale a 0
Inserisci un numero: -1
Il numero e' negativo
Gli altri stream
Per completezza, oltre a cout e cin la libreria mette a disposizione altri due stream di output: cerr per lo standard error, cioè per scrivere gli errori, e clog per i messaggi informativi. Si usano esattamente come cout, ad esempio:
std::cerr << "errore" << std::endl;
std::clog << "messaggio informativo" << std::endl;
Da leggere, invece, c’è solo std::cin.
Per concludere
Con gli stream i vostri programmi possono interagire con l’utente. Riprendete i programmi delle puntate precedenti e aggiungeteci un po’ di interattività. Nella prossima puntata andremo ancora più nel dettaglio della sintassi del linguaggio e vedremo altre strutture.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- std::cin, cppreference — lo stream di input
- std::cout, cppreference — lo stream di output
- Libreria di input/output, cppreference — tutti gli stream
- Stream, Wikipedia — in italiano
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
ma se vuoi offrirmi un caffè, mi aiuterà a rimanere sveglio mentre registro i video 😁☕
clicca qui per scoprire come https://buymeacoffee.com/thelinuxnerd
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
