iomanip
Főnév
iomanip (tsz. iomanips)
- (informatika) Az
iomanip(Input Output Manipulation) egy C++ fejléckönyvtár, amely lehetővé teszi a formázott kiírást és beolvasást aziostreamhasználatával. Aziomanipmanipulátorok segítségével befolyásolhatjuk az adatok megjelenítését, például a számok pontosságát, a mezőszélességet, a kitöltőkaraktereket és a különböző számformátumokat.
Fontosabb iomanip manipulátorok és példák
1. setw(n) – Mezőszélesség beállítása
Meghatározza, hogy egy adott érték minimum hány karakter szélességű legyen a kiíráskor.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::setw(10) << 42 << std::endl;
std::cout << std::setw(10) << 123456 << std::endl;
return 0;
}
Kimenet:
42
123456
A setw(10) azt jelenti, hogy a számok legalább 10 karakter széles oszlopban jelennek meg.
2. setfill(c) – Kitöltő karakter beállítása
Ha a setw() által meghatározott helyet nem tölti ki az érték, az alapértelmezett szóköz helyett más karaktert is használhatunk.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::setfill('-') << std::setw(10) << 42 << std::endl;
return 0;
}
Kimenet:
--------42
3. setprecision(n) – Tizedesjegyek számának beállítása
Beállítja a lebegőpontos számok kiírásakor a megjelenő tizedesjegyek számát.
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.14159265358979;
std::cout << std::setprecision(3) << pi << std::endl;
std::cout << std::setprecision(5) << pi << std::endl;
return 0;
}
Kimenet:
3.14 3.1416
Alapértelmezés szerint a setprecision(n) az összes számjegyet (egész és tizedes) együtt számolja.
4. fixed – Rögzített tizedesjegy formátum
Ha azt akarjuk, hogy a setprecision(n) csak a tizedesjegyek számára vonatkozzon, akkor használhatjuk a fixed manipulátort.
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.14159265358979;
std::cout << std::fixed << std::setprecision(3) << pi << std::endl;
return 0;
}
Kimenet:
3.142
Itt a fixed biztosítja, hogy a setprecision(3) a tizedesjegyeket szabályozza.
5. scientific – Tudományos jelölés
A scientific manipulátor a számokat tudományos (exponenciális) formában jeleníti meg.
#include <iostream>
#include <iomanip>
int main() {
double num = 1234.56789;
std::cout << std::scientific << num << std::endl;
return 0;
}
Kimenet:
1.234568e+03
6. hex, oct, dec – Számrendszerek váltása
A számokat különböző számrendszerekben lehet megjeleníteni.
#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
7. showbase – Alapjelzés kiírása
A showbase megmutatja a számrendszer azonosítóit (0x a hexadecimális és 0 az oktális számoknál).
#include <iostream>
#include <iomanip>
int main() {
int num = 255;
std::cout << std::showbase;
std::cout << "Hexadecimális: " << std::hex << num << std::endl;
std::cout << "Oktális: " << std::oct << num << std::endl;
return 0;
}
Kimenet:
Hexadecimális: 0xff Oktális: 0377
8. showpoint – Tizedesjegyek kényszerített megjelenítése
Még egész számok esetén is megjeleníti a tizedes pontot.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::showpoint;
std::cout << 10.0 << std::endl;
std::cout << 5.0 << std::endl;
return 0;
}
Kimenet:
10.000 5.000
9. left, right – Igazítás
A setw() által meghatározott mezőben beállítható az igazítás.
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::left << std::setw(10) << 42 << "Balra" << std::endl;
std::cout << std::right << std::setw(10) << 42 << "Jobbra" << std::endl;
return 0;
}
Kimenet:
42 Balra
42Jobbra
Összegzés
Az iomanip könyvtár manipulátorai nagyon hasznosak, ha pontosan szeretnénk vezérelni az adatok formázását a C++ programokban. A legfontosabbak: - Mezőszélesség és kitöltés: setw(), setfill() - Számok formázása: setprecision(), fixed, scientific, showpoint - Számrendszerek: hex, oct, dec, showbase - Igazítás: left, right
Ezeket kombinálva professzionális és jól olvasható kimenetet lehet létrehozni a programokban.