C++: gli stream di input e output

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

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!