Poniższy przykładowy program pokazuje w jaki sposób można wpływać na sposób wyświetlania danych za pomocą strumieni w języku C++. Oczywiście, jest to tylko niewielki fragment dostępnych możliwości.
#include <cstring> #include <iomanip> /* Potrzebne do setw, setfill */ void formatowaneIO() { using namespace std; // Pokazane techniki można stosować również dla plików const char imie[] = "Alicja"; cout << imie[0]; // W zależności od kompilatora, może wyświetlić literkę A lub kod 65 cout.put(imie[0]); // Wyślij pojedynczy znak do strumienia, wyświetli 'A' cout << endl << imie << endl; // Standardowy sposób // Metoda write umożliwia wysłanie dowolnej tablicy znaków do strumienia cout.write(imie, strlen(imie)-1); // Wyświetli tylko "Alicj" const int wiek = 20; cout << endl << wiek << endl; // Manipulator setw() pozwala określić na ilu miejscach zostanie wyświetlony // kolejny łańcuch - jeżeli będzie krótszy to zostaną wyświetlone dodatkowe // spacje cout << setw(6) << wiek << endl; // Domyślnie łańcuchy wyrównywane są do prawej strony, ale można to zmienić // za pomocą manipulatora left cout << setw(6) << left << wiek << endl; /* Od teraz wyrównywanie do lewej */ // setfill() pozwala zmienić znak używany do wypełniania pustych miejsc - // zamiast spacji gwiazdka '*' cout << setfill('*') << setw(6) << right << wiek << endl; cout << setfill(' ') << setw(10) << wiek << endl; // Korzystając z manipulatora setw() można z łatwością wyświetlić tabelkę z // danymi w której kolumny będą miały ustaloną szerokość for (int i = 1; i <= 10; ++i) { for (int j = 1; j <= 10; ++j) { cout << setw(4) << (i * j); // Wyświetl zawartość komórki na 4 miejscach if (j < 10) { cout << " | "; } else { cout << endl; } } } } |