iomanip library
Főnév
iomanip library (tsz. iomanip libraries)
- (informatika) Az iomanip (Input/Output Manipulation) egy olyan C++ fejléce, amely formázási lehetőségeket biztosít a be- és kimeneti adatfolyamokhoz (
std::cin,std::cout,std::cerr, stb.). Az iomanip lehetővé teszi a számok, szövegek és egyéb adatok egyéni módosítását a konzolos megjelenítés során.
Főbb funkciók és használatuk
Az iomanip könyvtárban található manipulátorok segítségével különböző formázási beállításokat adhatunk meg.
1. Beállított szélesség (std::setw)
Az std::setw(n) manipulátor egy adott mezőszélességet állít be a következő kiírandó értékre.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::setw(10) << 42 << std::endl;
std::cout << std::setw(10) << "Hello" << std::endl;
return 0;
}
Kimenet:
42
Hello
A setw(10) biztosítja, hogy az értékek legalább 10 karakter széles oszlopban jelenjenek meg.
2. Kitöltőkarakter (std::setfill)
A setfill(c) manipulátor beállítja a kitöltő karaktert a setw() által meghatározott szélességen belül.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::setw(10) << std::setfill('*') << 42 << std::endl;
return 0;
}
Kimenet:
********42
3. Igazítás (std::left, std::right, std::internal)
std::left: A szöveget balra igazítja.std::right: A szöveget jobbra igazítja (alapértelmezett).std::internal: A szám előjelét balra, az érték többi részét jobbra igazítja.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::setw(10) << std::left << 42 << std::endl;
std::cout << std::setw(10) << std::right << 42 << std::endl;
std::cout << std::setw(10) << std::internal << -42 << std::endl;
return 0;
}
Kimenet:
42
42
- 42
4. Decimális számok formázása
Fixpontos (std::fixed) és tudományos (std::scientific) formátum
Az std::fixed manipulátor rögzített tizedespontosságot állít be, míg az std::scientific tudományos (exponenciális) formátumot használ.
#include <iostream>
#include <iomanip>
int main() {
double num = 123.456789;
std::cout << std::fixed << num << std::endl;
std::cout << std::scientific << num << std::endl;
return 0;
}
Kimenet:
123.456789 1.234568e+02
Tizedesjegyek száma (std::setprecision)
Az std::setprecision(n) manipulátor az értékek kijelzésének tizedesjegyszámát állítja be.
#include <iostream>
#include <iomanip>
int main() {
double num = 123.456789;
std::cout << std::fixed << std::setprecision(2) << num << std::endl;
std::cout << std::fixed << std::setprecision(5) << num << std::endl;
return 0;
}
Kimenet:
123.46 123.45679
5. Számrendszerek (std::dec, std::hex, std::oct)
Az std::dec, std::hex és std::oct manipulátorok a számok tízes, tizenhatos és nyolcas számrendszerben történő kiírására szolgálnak.
#include <iostream>
#include <iomanip>
int main() {
int num = 255;
std::cout << "Decimális: " << std::dec << num << std::endl;
std::cout << "Hexadecimális: " << std::hex << num << std::endl;
std::cout << "Oktális: " << std::oct << num << std::endl;
return 0;
}
Kimenet:
Decimális: 255 Hexadecimális: ff Oktális: 377
Nagybetűs hexadecimális (std::uppercase)
Az std::uppercase a hexadecimális számokat nagybetűkkel jeleníti meg.
std::cout << std::hex << std::uppercase << 255 << std::endl;
Kimenet:
FF
6. Előtagok és előjelek (std::showbase, std::showpos, std::noshowbase, std::noshowpos)
std::showbase: Megjeleníti a számrendszer előtagját (pl.0xa hexadecimálisnál,0az oktálisnál).std::showpos: A pozitív számok elé+jelet tesz.std::noshowbase/std::noshowpos: Kikapcsolja ezeket a beállításokat.
#include <iostream>
#include <iomanip>
int main() {
int num = 255;
std::cout << std::showbase << std::hex << num << std::endl;
std::cout << std::showpos << std::dec << num << std::endl;
return 0;
}
Kimenet:
0xff +255
7. Bool formázás (std::boolalpha, std::noboolalpha)
Az std::boolalpha manipulátor lehetővé teszi, hogy a logikai értékeket "true" és "false" formában írja ki számok helyett.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::boolalpha << true << " " << false << std::endl;
return 0;
}
Kimenet:
true false
A std::noboolalpha visszakapcsolja a numerikus formátumot (1 és 0).
Összegzés
Az iomanip könyvtár egy erőteljes eszköz a formázott kiírásokhoz C++-ban. Segítségével: - Igazíthatjuk és szélességet adhatunk a kiírásokhoz. - Beállíthatjuk a tizedesjegyek számát és a számrendszert. - Tudományos és fixpontos formátumokat használhatunk. - Bool típusokat szövegesen írhatunk ki. - Kitöltő karaktereket és előjeleket módosíthatunk.
Ezek a manipulátorok jelentősen növelik a C++ nyelv rugalmasságát és lehetőséget adnak esztétikusabb konzolos megjelenítésre.
- iomanip library - Szótár.net (en-hu)
- iomanip library - Sztaki (en-hu)
- iomanip library - Merriam–Webster
- iomanip library - Cambridge
- iomanip library - WordNet
- iomanip library - Яндекс (en-ru)
- iomanip library - Google (en-hu)
- iomanip library - Wikidata
- iomanip library - Wikipédia (angol)