Ugrás a tartalomhoz

iomanip

A Wikiszótárból, a nyitott szótárból


Főnév

iomanip (tsz. iomanips)

  1. (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 az iostream használatával. Az iomanip manipulá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.