0Pricing
C++ Academy · Lezione

Uso corretto di std::cin e std::cout

Gestisca input e output tramite gli stream standard ed eviti gli errori più comuni.

Uso corretto di std::cin e std::cout è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.

L'header iostream

Sia std::cin sia std::cout sono oggetti dell'header <iostream>. Rappresentano gli stream standard di input e output del terminale.

Output con std::cout

Invii i valori a std::cout con <<. Funziona con qualsiasi tipo per cui sia disponibile un overload di operator<<, inclusi tutti i tipi incorporati e std::string.

int age = 30;
std::string name = "Ada";
std::cout << "Name: " << name << ", Age: " << age << "\n";

Input con std::cin

Legga i valori con std::cin >> variable. Gli spazi vuoti separano i token.

int age;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> age;
std::cout << name << " is " << age << "\n";

Ignorare gli spazi vuoti

Per impostazione predefinita, >> ignora gli spazi vuoti iniziali, come spazi, tabulazioni e nuove righe, prima della lettura. Di solito è ciò che si desidera, ma presti attenzione quando legge singoli caratteri.

Lettura di un'intera riga

std::cin >> name legge una sola parola. Per leggere una riga contenente spazi, utilizzi std::getline.

std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line;

Combinare >> e getline: un errore comune

Dopo std::cin >> n, il carattere di nuova riga rimane nel buffer. Il successivo getline legge una stringa vuota. Prima elimini il carattere di nuova riga.

int n;
std::cin >> n;
std::cin.ignore();  // consume the leftover newline
std::string line;
std::getline(std::cin, line);

Stato dello stream

Gli stream dispongono di bit di stato: good, eof, fail, bad. Utilizzi if (std::cin) per verificare che lo stream sia ancora utilizzabile dopo l'estrazione.

Rilevamento di EOF

La fine del file viene segnalata da Ctrl+D su Unix o da Ctrl+Z su Windows. Esegua il ciclo finché lo stream è valido per elaborare tutto l'input.

int n;
while (std::cin >> n) {
    std::cout << n * 2 << "\n";
}

I/O più veloce per il codice da competizione

Disabiliti la sincronizzazione con l'I/O C per velocizzare le letture nella programmazione competitiva. Scolleghi anche cin da cout.

std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);

std::endl contro \n, di nuovo

std::endl scrive una nuova riga e svuota il buffer. "\n" scrive soltanto la nuova riga. Utilizzi "\n" nei cicli per mantenere alte le prestazioni.

Svuotamento manuale

Se deve svuotare il buffer senza inserire una nuova riga, utilizzi std::flush. È utile per gli indicatori di avanzamento.

for (int i = 0; i < 100; ++i) {
    std::cout << "\r" << i << "%" << std::flush;
    // ... work ...
}

Verifica rapida

Qual è la differenza tra std::endl e "\n" nell'output?

Riepilogo

Utilizzi std::cout con << per stampare e std::cin con >> per leggere i token. Per leggere righe intere utilizzi std::getline e, dopo l'input numerico, elimini le nuove righe residue con cin.ignore().

Domande Frequenti

La lezione «Uso corretto di std::cin e std::cout» è gratuita?

Sì — il testo completo di «Uso corretto di std::cin e std::cout» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.

Cosa imparerò in «Uso corretto di std::cin e std::cout»?

Gestisca input e output tramite gli stream standard ed eviti gli errori più comuni. Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C++ Academy?

Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Uso corretto di std::cin e std::cout»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C++ Academy?

Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Uso corretto di std::cin e std::cout
  2. Formattazione dell'output con iomanip
  3. Lettura sicura dell'input con getline
  4. Utilizzo di std::cerr e std::clog
← Torna a C++ Academy