Cách dụng setprecision trong C++

Sử dụng các lệnh liên quan đến xuất dữ liệu

Trong ngôn ngữ lập trình C++, có một số kí tự trên bàn phím chúng ta không thể đưa trực tiếp vào cặp dấu ngoặc kép để in ra màn hình trong lệnhcoutđược. Chúng ta cần định dạng chúng lại một chút. Sau đây là bảng một số kí tự đặc biệt và cách để in chúng ra màn hình:

[Nguồn://msdn.microsoft.com]
Đầu tiên là sử dụng kí tự xuống dòng:

Như các bạn thấy, không còn sử dụng đối tượngendlnữa nhưng chuỗi kí tự trên vẫn được tách thành 2 dòng bằng cách sử dụng kí tự new line\n.

Tiếp theo, chúng ta thêm kí tựTabvà đầu chuỗi kí tự muốn in ra:


Ta thấy dòng đầu tiên đã được đẩy vào 1 Tab so với dòng thứ 2. Các bạn có thể thử lần lượt các kí tự đặc biệt trên nếu có thời gian. Tuy nhiên, cần lưu ý rằng kí tự new line \n và đối tượngendlđều đóng vai trò là kí tự xuống dòng nhưng nó hoàn toàn khác nhau.

Ngoài ra, các bạn còn có thể sử dụng đối tượngcoutđể in ra kết quả của một biểu thức toán học:

Ngoài tính toán và cho ra kết quả số nguyên, một chương trình C++ còn có thể tính toán các biểu thức và in ra giá trị là số âm, số thực

  • Chương trình C++ không thể in ra giá trị là một phân số [trừ khi chúng ta tự định nghĩa lại], vì thế, ở biểu thức cuối cùng, máy tính không in ra được giá trị là5/10mà nó chỉ có thể in ra giá trị 0

Sử dụng thư viện iomanip

iomanipviết tắt của cụm từiostream manipulatorlà một thư viện thuộc namespacestd, nó định nghĩa một số hàm giúp lập trình viên có thể định dạng output.

Trong bài này, chúng ta chỉ làm quen với một số hàm đơn giản thường xuyên được sử dụng.

setw[int n]

setwlà một hàm cho phép giới hạn độ rộng của một giá trị được xuất lên màn hình.

Cách sử dụng:

Cùng nhìn vào hình trên để xem cú pháp sử dụng và đánh giá kết quả.

  • Đầu tiên, chúng ta include thêm thư việniomanipvào chương trình.
  • Tiếp theo, gọi hàmsetw[int n]với n là một số nguyên [ví dụ: setw[8]] để định dạng độ rộng cho kiểu dữ liệu số, ngay lúc này, bất kì giá trị số nào được truyền vào luồng output stream thông quacoutđều bị đối tượngcoutformat có độ rộng là 10 ô.
  • Cuối cùng thì thử truyền vài giá trị số nguyên vào để kiểm chứng thôi.

Trong hình trên, mình định dạng độ rộng của các số được đưa vàocoutcó độ rộng là 10, mình truyền thử 2 số nguyên mà số đầu tiên chỉ có 1 chữ số, số thứ 2 thì có 10 chữ số. Kết quả cho thấy có 9 khoảng trắng thừa đứng trước số 1 ở dòng đầu tiên.

Nếu các bạn muốn định dạng khoảng trắng phía sau, chỉ cần đổi giá trị trong hàmsetwthành số âm như hình bên dưới:

setprecision[int n]

Cũng tương tự như hàmsetw, hàmsetprecisioncũng nhận vào một giá trị số nguyên, nhưng mục đích của hàm này là định dạng số lượng chữ số trong phần thập phân của kiểu số thực.

Cách sử dụng:

  • Đảm bảo rằng thư việniomanipđã được include vào chương trình.
  • Đẩy định dạng độ chính xácsetpresicion[int n]và đối tượngcoutthông qua toán tử

Chủ Đề