Stream Manipulators là các hàm được thiết kế đặc biệt để sử dụng cùng với các toán tử chèn (<<) và trích xuất (>>) trên các đối tượng luồng, chẳng hạn như -
std::cout << std::setw(10);
Chúng vẫn là các hàm thông thường và cũng có thể được gọi như bất kỳ hàm nào khác bằng cách sử dụng đối tượng luồng làm đối số, chẳng hạn -
boolalpha (cout);
Người điều khiển đã quen với việc thay đổi các tham số định dạng trên luồng và chèn hoặc trích xuất các ký tự đặc biệt nhất định.
Sau đây là một số trình điều khiển C ++ được sử dụng rộng rãi nhất -
endl
Trình điều khiển này có chức năng tương tự như ‘\ n’ (ký tự dòng mới). Nhưng điều này cũng xóa luồng đầu ra.
Ví dụ
#include<iostream> int main() { std::cout << "Hello" << std::endl << "World!"; }
Đầu ra
Hello World!
showpoint / noshowpoint
Trình điều khiển này kiểm soát xem dấu thập phân có luôn được đưa vào biểu diễn dấu phẩy động hay không.
Ví dụ
#include <iostream> int main() { std::cout << "1.0 with showpoint: " << std::showpoint << 1.0 << '\n' << "1.0 with noshowpoint: " << std::noshowpoint << 1.0 << '\n'; }
Đầu ra
1.0 with showpoint: 1.00000 1.0 with noshowpoint: 1
setpre precision
Trình điều khiển này thay đổi độ chính xác của dấu phẩy động. Khi được sử dụng trong một biểu thức out <
Ví dụ
#include <iostream> #include <iomanip> int main() { const long double pi = 3.141592653589793239; std::cout << "default precision (6): " << pi << '\n' << "std::setprecision(10): " << std::setprecision(10) << pi << '\n'; }
Đầu ra
default precision (6): 3.14159 std::setprecision(10): 3.141592654
setw
Trình thao tác này thay đổi độ rộng của trường đầu vào / đầu ra tiếp theo. Khi được sử dụng trong biểu thức out <
Ví dụ
#include <iostream> #include <iomanip> int main() { std::cout << "no setw:" << 42 << '\n' << "setw(6):" << std::setw(6) << 42 << '\n' << "setw(6), several elements: " << 89 << std::setw(6) << 12 << 34 << '\n'; }
Đầu ra
no setw:42 setw(6): 42 setw(6), several elements: 89 1234