Computer >> Máy Tính >  >> Lập trình >> C ++

C ++ Manipulators (endl, setw, setpre precision, setf) là gì?


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 <> setpre precision (n), hãy đặt tham số chính xác của luồng ra ngoài hoặc thành chính xác n.

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 <> setw (n), hãy đặt tham số chiều rộng của luồng ra hoặc vào chính xác là n.

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