En aquest tema, aprendrem com gestionar l'entrada i la sortida de dades en C++. La capacitat de llegir dades de l'usuari i mostrar resultats és fonamental per a qualsevol programa. Utilitzarem les biblioteques estàndard de C++ per aconseguir-ho.

Conceptes Clau

  1. Fluxos d'Entrada i Sortida (I/O Streams)
  2. cin per a l'entrada de dades
  3. cout per a la sortida de dades
  4. Manipuladors de fluxos

Fluxos d'Entrada i Sortida (I/O Streams)

En C++, els fluxos d'entrada i sortida es gestionen mitjançant la biblioteca <iostream>. Aquesta biblioteca proporciona els objectes cin, cout, cerr i clog per gestionar l'entrada i la sortida de dades.

  • cin: Utilitzat per a l'entrada de dades des del teclat.
  • cout: Utilitzat per a la sortida de dades a la consola.
  • cerr: Utilitzat per a la sortida d'errors a la consola.
  • clog: Utilitzat per a la sortida de missatges de registre a la consola.

cin per a l'Entrada de Dades

L'objecte cin s'utilitza per llegir dades de l'usuari. Aquí teniu un exemple bàsic:

#include <iostream>
using namespace std;

int main() {
    int edat;
    cout << "Introdueix la teva edat: ";
    cin >> edat;
    cout << "Tens " << edat << " anys." << endl;
    return 0;
}

Explicació del Codi

  1. Incloure la Biblioteca: #include <iostream> inclou la biblioteca necessària per a l'entrada i sortida.
  2. Espai de Noms: using namespace std; permet utilitzar els objectes de la biblioteca estàndard sense prefixar-los amb std::.
  3. Declaració de la Variable: int edat; declara una variable per emmagatzemar l'edat.
  4. Sortida de Dades: cout << "Introdueix la teva edat: "; mostra un missatge a la consola.
  5. Entrada de Dades: cin >> edat; llegeix un valor des del teclat i l'emmagatzema a la variable edat.
  6. Mostrar Resultat: cout << "Tens " << edat << " anys." << endl; mostra el valor introduït.

cout per a la Sortida de Dades

L'objecte cout s'utilitza per mostrar dades a la consola. Aquí teniu un exemple bàsic:

#include <iostream>
using namespace std;

int main() {
    cout << "Hola, món!" << endl;
    return 0;
}

Explicació del Codi

  1. Incloure la Biblioteca: #include <iostream> inclou la biblioteca necessària per a l'entrada i sortida.
  2. Espai de Noms: using namespace std; permet utilitzar els objectes de la biblioteca estàndard sense prefixar-los amb std::.
  3. Sortida de Dades: cout << "Hola, món!" << endl; mostra el missatge "Hola, món!" a la consola.

Manipuladors de Fluxos

Els manipuladors de fluxos permeten formatar la sortida de dades. Alguns dels manipuladors més comuns són:

  • endl: Insereix un caràcter de nova línia i buida el buffer de sortida.
  • setw: Estableix l'amplada del camp per a la sortida.
  • setprecision: Estableix el nombre de dígits després del punt decimal.

Exemple amb Manipuladors

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double pi = 3.14159;
    cout << "Valor de pi: " << setprecision(2) << pi << endl;
    cout << "Valor de pi: " << setprecision(5) << pi << endl;
    return 0;
}

Explicació del Codi

  1. Incloure les Biblioteques: #include <iostream> i #include <iomanip> inclouen les biblioteques necessàries per a l'entrada, sortida i manipulació de fluxos.
  2. Espai de Noms: using namespace std; permet utilitzar els objectes de la biblioteca estàndard sense prefixar-los amb std::.
  3. Declaració de la Variable: double pi = 3.14159; declara una variable per emmagatzemar el valor de pi.
  4. Sortida de Dades amb Manipuladors:
    • cout << "Valor de pi: " << setprecision(2) << pi << endl; mostra el valor de pi amb 2 dígits de precisió.
    • cout << "Valor de pi: " << setprecision(5) << pi << endl; mostra el valor de pi amb 5 dígits de precisió.

Exercicis Pràctics

Exercici 1: Entrada i Sortida Bàsica

Escriu un programa que demani a l'usuari el seu nom i la seva edat, i després mostri un missatge de benvinguda.

Solució

#include <iostream>
using namespace std;

int main() {
    string nom;
    int edat;
    
    cout << "Introdueix el teu nom: ";
    cin >> nom;
    
    cout << "Introdueix la teva edat: ";
    cin >> edat;
    
    cout << "Hola, " << nom << "! Tens " << edat << " anys." << endl;
    
    return 0;
}

Exercici 2: Formatació de Sortida

Escriu un programa que mostri el valor de diverses constants matemàtiques amb diferents precisions.

Solució

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double pi = 3.141592653589793;
    double e = 2.718281828459045;
    
    cout << "Valor de pi amb 3 dígits de precisió: " << setprecision(3) << pi << endl;
    cout << "Valor de pi amb 7 dígits de precisió: " << setprecision(7) << pi << endl;
    
    cout << "Valor de e amb 3 dígits de precisió: " << setprecision(3) << e << endl;
    cout << "Valor de e amb 7 dígits de precisió: " << setprecision(7) << e << endl;
    
    return 0;
}

Errors Comuns i Consells

  1. Oblidar el using namespace std;: Això pot causar errors de compilació si no prefixeu els objectes de la biblioteca estàndard amb std::.
  2. No buidar el buffer d'entrada: Després de llegir una línia amb cin, el buffer pot contenir caràcters no desitjats. Utilitzeu cin.ignore() per evitar problemes.
  3. Utilitzar endl en excés: endl buida el buffer de sortida, cosa que pot afectar el rendiment. Utilitzeu \n si no necessiteu buidar el buffer.

Resum

En aquesta secció, hem après com utilitzar els fluxos d'entrada i sortida en C++ per llegir dades de l'usuari i mostrar resultats. Hem vist com utilitzar cin per a l'entrada de dades i cout per a la sortida de dades, així com alguns manipuladors de fluxos per formatar la sortida. També hem practicat amb alguns exercicis per reforçar els conceptes apresos. En el proper mòdul, explorarem les estructures de control en C++.

© Copyright 2024. Tots els drets reservats