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:

Cách dụng setprecision trong C++

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

Cách dụng setprecision trong C++

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:

Cách dụng setprecision trong C++

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:

Cách dụng setprecision trong 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

Cách dụng setprecision trong 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ách dụng setprecision trong C++

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:

Cách dụng setprecision trong C++

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:

Cách dụng setprecision trong C++

  • Đả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ử<<, sau thời điểm này, mọi số thực có phần thập phân sẽ được định dạng lại, với độ dài phần thập phân bằng với số nguyên mà bạn đặt trong hàmsetprecision.

Nhìn vào kết quả của đoạn chương trình trên, ta thấy rằng mặc định phần thập phân của một số thực chỉ có 6 chữ số. Sau khi định dạng lại với hàmsetprecision(9)thì độ chính xác đã lên đến 9 chữ số.

Biến

Cách dụng setprecision trong C++

Trong cột Category, người ta chia các kiểu dữ liệu cơ bản thành 4 loại:

  • Kiểu logic (boolean):bool.
  • Kiểu kí tự (character):char, wchar_t, char16_t, char32_t. Hiện tại chúng ta chỉ cần quan tâm đến kiểuchar.
  • Kiểu số nguyên (integer): short,int, long, long long. Thường dùng nhất là kiểuint.
  • Kiểu số thực (floating):float,double, long double. Tùy vào độ chính xác mà chúng ta đòi hỏi ở phần thập phân mà chúng ta chọn kiểu dữ liệufloathoặcdouble. Kiểu double có kích thước vùng nhớ lớn hơn, nên sẽ lưu giá trị có độ chính xác cao hơnfloat.Dưới đây là bảng giới hạn giá trị cho từng kiểu dữ liệu mà chúng ta thường xuyên sử dụng trong Visual studio:
    Cách dụng setprecision trong C++

    Biến cục bộ (local variable) và biến toàn cục (global variable)

    Khi có một biến khác nằm trong phạm vi của khối lệnh hàm main được khai báo cùng tên với biến toàn cục bên ngoài khối lệnh hàm main, mỗi câu lệnh truy xuất đến biến đó đều được ưu tiên tìm đến biến cục bộ bên trong hàm main trước.Vậy có cách nào để ta truy xuất được biến toàn cục bên ngoài hàm main không?

    Câu trả lời là có! Chúng ta sử dụng toán tử phạm vi (::) như sau:

    #include using namespace std; int value = 1; int main() { int value = 10; cout << "local value: " << value << endl; cout << "global value: " << ::value << endl; system("pause"); return 0; }

    Hằng

    Khai báo hằng số

    Để khiến một biến trong C++ trở thành một hằng số, bạn chỉ cần đặttừ khóaconsttrước hoặc sau kiểu dữ liệu của biến. Ví dụ:

    const float gravity = 9.8;

    int const my_constant = 123;

Chia sẻ:

  • Twitter
  • Facebook

Thích bài này:

Thích Đang tải...

Có liên quan