Xem thêm

Nhập, Xuất và Định dạng dữ liệu trong C++ (Input and Output)

Huy Erick
Tìm hiểu về Nhập, Xuất và Định dạng dữ liệu trong C++ Trong lĩnh vực lập trình, việc nhập và xuất dữ liệu là một phần quan trọng để tương tác với người dùng và...

Tìm hiểu về Nhập, Xuất và Định dạng dữ liệu trong C++

Trong lĩnh vực lập trình, việc nhập và xuất dữ liệu là một phần quan trọng để tương tác với người dùng và hiển thị kết quả của chương trình. Trong ngôn ngữ lập trình C++, ta sử dụng các đối tượng std::cout và std::cin để thực hiện việc nhập và xuất dữ liệu.

Để hiểu rõ hơn về việc nhập, xuất và định dạng dữ liệu trong C++, hãy cùng tìm hiểu chi tiết về các vấn đề sau đây:

Xuất dữ liệu với std::cout trong C++

Đối tượng std::cout là một đối tượng được định nghĩa trong iostream library thuộc namespace std, dùng để hiển thị một thông tin nào đó lên thiết bị xuất chuẩn (mặc định là màn hình). Toán tử << (insertion operator) được dùng chung với std::cout, cho biết hướng đi của data từ r-value đến màn hình console.

Ví dụ, sau đây là một chương trình đơn giản in ra dòng chữ "Hello HowKteam.com" lên màn hình:

#include 
using namespace std;

int main() {
    cout << "Hello HowKteam.com";
    return 0;
}

Bạn cũng có thể sử dụng toán tử << nhiều lần để in nhiều thông tin trên cùng một dòng. Ví dụ:

#include 
using namespace std;

int main() {
    cout << "Hello HowKteam.com" << endl; // in ra dòng chữ "Hello HowKteam.com" và xuống dòng
    int n1{ 60 }; // khai báo biến n1 và gán giá trị 60 cho nó
    int n2{ 9 }; // khai báo biến n2 và gán giá trị 9 cho nó
    cout << "Sum: " << n1 << " + " << n2 << " = " << n1 + n2 << endl; // in ra dòng chữ "Sum: 60 + 9 = 69" và xuống dòng
    return 0;
}

Trong trường hợp cần in một ký tự xuống dòng, bạn có thể sử dụng ký tự escape '\n' hoặc manipulator std::endl. Hai cách này tương đương nhau.

Nhập dữ liệu với std::cin trong C++

Đối tượng std::cin là một đối tượng được định nghĩa trong iostream library thuộc namespace std, dùng để đọc một thông tin nào đó từ thiết bị nhập chuẩn (mặc định là bàn phím), sau đó lưu thông tin đó vào một biến. Toán tử >> (extraction operator) được dùng chung với std::cin, cho biết hướng đi của data từ màn hình console vào một biến.

Dưới đây là một ví dụ về chương trình yêu cầu người dùng nhập một số và sau đó in số vừa nhập ra màn hình:

#include 
using namespace std;

int main() {
    int n{ 0 };
    cout << "Enter your age: ";
    cin >> n;
    cout << "Your age: " << n << endl;
    return 0;
}

Trong trường hợp nhập một số thực, C++ sẽ ép kiểu ngầm định số thực về số nguyên, tức là phần thập phân sẽ bị mất đi.

Ngoài ra, nếu bạn nhập một giá trị không phải là số hoặc một số nằm ngoài phạm vi kiểu dữ liệu của biến, thì giá trị đó sẽ không được gán cho biến. Lúc này, giá trị của biến sẽ không thay đổi.

Định dạng dữ liệu nhập xuất trong C++

Trong ngôn ngữ lập trình C++, bạn có thể định dạng dữ liệu nhập xuất cho thiết bị nhập xuất chuẩn (bàn phím, màn hình console), hoặc có thể định dạng dữ liệu nhập xuất cho file văn bản.

Để định dạng dữ liệu, bạn cần thêm chỉ thị #include vào đầu chương trình. Thư viện này chứa các manipulator (toán tử định dạng).

Dưới đây là những manipulator khá thông dụng trong C++:

  • Toán tử std::setw(n): xác định độ rộng dành cho dữ liệu xuất. Khi sử dụng std::setw(n), khoảng trắng sẽ được thêm vào bên trái hoặc bên phải dữ liệu xuất (để tổng số ký tự là n). Dữ liệu khi in ra sẽ được canh trái hoặc canh phải.
  • Toán tử std::left và std::right dùng chung với std::setw(n) để canh lề trái hoặc lề phải.
  • Toán tử std::setfill(ch) dùng chung với std::setw(n) để quy định ký tự ch được thêm vào thay vì dùng khoảng trắng mặc định.

Dưới đây là một ví dụ sử dụng các manipulator để định dạng dữ liệu nhập xuất:

#include 
#include 

using namespace std;

int main() {
    cout << "Kteam Solutions and Entertainment" << endl;
    cout << "HowKteam.com" << endl << endl;
    cout << setw(5) << left << "ID"; // độ rộng 5 ký tự, canh trái ID
    cout << setw(30) << left << "Name"; // độ rộng 30 ký tự, canh trái Name
    cout << setw(20) << right << "Address" << endl; // độ rộng 20 ký tự, canh phải Address
    cout << setfill('-'); // set fill bằng ký tự '-' thay vì ' '
    cout << setw(55) << "-" << endl; // fill 55 ký tự '-'
    cout << setfill(' '); // reset fill bằng ký tự ' '
    cout << setw(5) << left << 1;
    cout << setw(30) << left << "Nguyen Doan Ngoc Giau";
    cout << setw(20) << right << "Sai Gon" << endl;
    cout << setw(5) << left << 2;
    cout << setw(30) << left << "Tran Kim Long";
    cout << setw(20) << right << "Da Lat" << endl;
    cout << setw(5) << left << 3;
    cout << setw(30) << left << "Nguyen Son Tung";
    cout << setw(20) << right << "Dong Nai" << endl;
    return 0;
}

Bạn cũng có thể định dạng dữ liệu số nguyên theo các hệ cơ số (thập phân, bát phân, thập lục phân) bằng cách sử dụng các manipulator std::dec, std::oct, std::hex.

Dưới đây là một ví dụ sử dụng các manipulator để định dạng dữ liệu số nguyên:

#include 
#include 

using namespace std;

int main() {
    int n;
    cout << "Enter n (hexadecimal): ";
    cin >> hex >> n; // nhập số thập lục phân (hệ 16)
    cout << "Octal: " << oct << n << endl; // xuất số bát phân (hệ 8)
    cout << "Decimal: " << dec << n << endl; // xuất số thập phân (hệ 10)
    return 0;
}

Kết luận

Qua bài viết này, chúng ta đã tìm hiểu về quy trình nhập, xuất và định dạng dữ liệu trong ngôn ngữ lập trình C++. Hi vọng rằng bạn đã có cái nhìn tổng quan về cách sử dụng đối tượng std::cout và std::cin để tương tác với người dùng và hiển thị dữ liệu.

Trong bài viết tiếp theo, chúng ta sẽ tiếp tục khám phá một khái niệm quan trọng khác trong lập trình C++, đó là Hằng số (Constants). Nếu bạn có bất kỳ câu hỏi hoặc góp ý nào, hãy để lại bình luận để chúng ta cùng thảo luận.

1