C++ Basic Input/Output
Ciao a tutti, futuri programmatori C++! Oggi, esploreremo il mondo affascinante dell'input e dell'output in C++. Non preoccupatevi se non avete mai scritto una riga di codice prima – inizieremo dall'inizio e costruiremo gradualmente. Alla fine di questo tutorial, rimarrete sbalorditi di quante cose possiate fare con sole poche righe di codice C++!
File di intestazione delle librerie I/O
Prima di poter iniziare a stampare messaggi sullo schermo o a leggere input dall'utente, dobbiamo includere i file di intestazione necessari. In C++, le operazioni di input e output sono gestite dalla libreria iostream.
Iniziamo con un semplice esempio:
#include <iostream>
int main() {
// Il vostro codice andrà qui
return 0;
}
Questa è la struttura di base di un programma C++. La riga #include <iostream>
dice al compilatore di includere la libreria iostream, che ci fornisce accesso alla funzionalità di input e output.
Il flusso di output standard (cout)
Ora, vediamo come visualizzare il testo sullo schermo. In C++, usiamo cout
(pronunciato "cee-out") per inviare l'output alla console.
#include <iostream>
using namespace std;
int main() {
cout << "Ciao, Mondo!";
return 0;
}
Quando esegui questo programma, visualizzerà "Ciao, Mondo!" sullo schermo. Analizziamo il codice:
-
cout
è l'oggetto del flusso di output standard. - L'operatore
<<
viene utilizzato per inviare dati acout
. - Il testo tra virgolette è chiamato letterale di stringa.
Puoi anche usare cout
per stampare più elementi:
cout << "Il mio nome è " << "Alice" << " e ho " << 25 << " anni.";
Questo produrrà: "Il mio nome è Alice e ho 25 anni."
Aggiungere una nuova riga
Per spostarsi su una nuova riga dopo l'output, puoi usare il manipolatore endl
o il carattere \n
:
cout << "Prima riga" << endl;
cout << "Seconda riga\n";
cout << "Terza riga" << '\n';
Il flusso di input standard (cin)
Ora che possiamo emettere testo, vediamo come ottenere l'input dall'utente. Per questo scopo, usiamo cin
(pronunciato "cee-in").
#include <iostream>
using namespace std;
int main() {
int età;
cout << "Quanti anni hai? ";
cin >> età;
cout << "Hai " << età << " anni!" << endl;
return 0;
}
In questo esempio:
- Dichiariamo una variabile intera
età
per memorizzare l'input dell'utente. - Usiamo
cout
per richiedere l'età dell'utente. -
cin >> età
legge un intero dall'utente e lo memorizza nella variabileetà
. - Infine, usiamo
cout
per visualizzare il risultato.
Puoi anche leggere più input:
string nome;
int età;
cout << "Inserisci il tuo nome e età: ";
cin >> nome >> età;
cout << "Ciao, " << nome << "! Hai " << età << " anni." << endl;
Il flusso di errore standard (cerr)
Mentre cout
è ottimo per l'output normale, a volte abbiamo bisogno di visualizzare messaggi di errore. Ecco dove entra in gioco cerr
. È simile a cout
, ma è specificamente previsto per messaggi di errore.
#include <iostream>
using namespace std;
int main() {
int denominatore = 0;
if (denominatore == 0) {
cerr << "Errore: Impossibile dividere per zero!" << endl;
}
return 0;
}
L'uso di cerr
aiuta a distinguere tra output normale e messaggi di errore, il che può essere cruciale durante il debug dei programmi.
Il flusso di log standard (clog)
Infine, abbiamo clog
, che viene utilizzato per registrare i messaggi. È simile a cerr
, ma potrebbe essere bufferizzato, il che significa che l'output potrebbe non apparire immediatamente.
#include <iostream>
using namespace std;
int main() {
clog << "Questo è un messaggio di log." << endl;
return 0;
}
Nella pratica, clog
non viene utilizzato frequentemente come cout
e cerr
, ma è buono sapere che esiste.
Formattazione dell'output
Ora che abbiamo coperto i concetti di base, vediamo alcune modalità per formattare il nostro output e renderlo più gradevole.
Impostazione della larghezza del campo
Puoi usare il manipolatore setw
per impostare la larghezza di un campo:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
cout << setw(10) << "Nome" << setw(5) << "Età" << endl;
cout << setw(10) << "Alice" << setw(5) << 25 << endl;
cout << setw(10) << "Bob" << setw(5) << 30 << endl;
return 0;
}
Questo produrrà un output ben allineato:
Nome Età
Alice 25
Bob 30
Precisione per i numeri a virgola mobile
Per i numeri a virgola mobile, puoi controllare la precisione utilizzando setprecision
:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double pi = 3.14159265359;
cout << "PiGreco predefinito: " << pi << endl;
cout << "PiGreco a 4 cifre decimali: " << fixed << setprecision(4) << pi << endl;
return 0;
}
Output:
PiGreco predefinito: 3.14159
PiGreco a 4 cifre decimali: 3.1416
Riepilogo degli oggetti e dei manipolatori dei flussi I/O
Ecco una tabella utile che riepiloga gli oggetti e i manipolatori dei flussi I/O che abbiamo appreso:
Oggetto/Manipolatore | Descrizione | Esempio |
---|---|---|
cout | Flusso di output standard | cout << "Ciao"; |
cin | Flusso di input standard | cin >> variabile; |
cerr | Flusso di errore standard | cerr << "Errore!"; |
clog | Flusso di log standard | clog << "Messaggio di log"; |
endl | Fine della riga | cout << "Ciao" << endl; |
setw | Imposta la larghezza del campo | cout << setw(10) << "Nome"; |
setprecision | Imposta la precisione dei numeri a virgola mobile | cout << setprecision(2) << 3.14159; |
E con questo, abbiamo finito! Avete appena appreso i concetti di base dell'input e dell'output in C++. Ricordate, la pratica fa l'artista, quindi non esitate a sperimentare con questi concetti. Provate a combinare in diverse modalità, e presto scriverete programmi complessi con facilità.
Buon coding, e che i vostri output siano sempre come previsto e i vostri input sempre validi!
Credits: Image by storyset