Bài 1.1: Nhập xuất sử dụng cin và cout trong C++

Bài 1.1: Nhập xuất sử dụng cin và cout trong C++
Chào mừng trở lại với hành trình chinh phục C++ cùng FullhouseDev! Sau khi bạn đã làm quen với cấu trúc cơ bản của một chương trình C++ đơn giản, đã đến lúc chúng ta tìm hiểu cách chương trình của mình có thể "nói chuyện" với thế giới bên ngoài và "lắng nghe" người dùng. Khả năng nhập và xuất dữ liệu là nền tảng cho mọi ứng dụng tương tác.
Trong bài học đầu tiên mang tính thực hành này, chúng ta sẽ đi sâu vào hai đối tượng cực kỳ quan trọng trong C++: cout
để xuất dữ liệu ra màn hình console, và cin
để nhập dữ liệu từ bàn phím. Đây là những công cụ bạn sẽ sử dụng liên tục trong quá trình lập trình C++, vì vậy hãy nắm vững chúng nhé!
Để sử dụng cin
và cout
, chúng ta cần bao gồm thư viện <iostream>
ở đầu file code của mình.
1. Xuất dữ liệu ra màn hình với cout
cout
(viết tắt của console output) là đối tượng chuẩn được dùng để hiển thị thông tin ra luồng đầu ra chuẩn, mà thông thường chính là màn hình console (hoặc cửa sổ dòng lệnh).
Để "đẩy" dữ liệu ra cout
, chúng ta sử dụng toán tử chèn luồng (insertion operator), ký hiệu là <<
. Toán tử này lấy dữ liệu ở bên phải và gửi nó đến luồng cout
ở bên trái.
Ví dụ 1.1.1: In chuỗi ký tự cố định
Đơn giản nhất là in một dòng chữ chào mừng:
#include <iostream>
using namespace std;
int main() {
cout << "Chao mung den voi C++!";
return 0;
}
Output:
Chao mung den voi C++!
Ví dụ 1.1.2: In giá trị của biến
cout
không chỉ in được chuỗi cố định mà còn in được giá trị của các biến thuộc nhiều kiểu dữ liệu khác nhau như số nguyên (int
), số thực (double
), ký tự (char
), v.v.
#include <iostream>
using namespace std;
int main() {
int sN = 123;
double sT = 45.67;
char kT = 'X';
bool gtB = true;
cout << sN;
cout << sT;
cout << kT;
cout << gtB;
return 0;
}
Output:
12345.67X1
Ví dụ 1.1.3: Xuống dòng với endl
và \n
Thông thường, sau khi in một thông tin, chúng ta muốn con trỏ xuống dòng để thông tin tiếp theo hiển thị ở dòng mới. Có hai cách phổ biến để làm điều này:
- Sử dụng
endl
: Chèn một ký tự xuống dòng và ép bộ đệm đầu ra (output buffer) phải gửi dữ liệu ra ngay lập tức (gọi là flushing). - Sử dụng ký tự đặc biệt
\n
(escape sequence cho newline): Chỉ đơn giản là chèn một ký tự xuống dòng. Nó thường không ép flush bộ đệm ngay lập tức (mặc dù với các chương trình nhỏ đơn giản thì bạn có thể không thấy sự khác biệt).
#include <iostream>
using namespace std;
int main() {
cout << "Day la dong thu nhat." << endl;
cout << "Day la dong thu hai voi \\n.\n";
cout << "Dong cuoi cung.\n";
cout << "Van ban nay " << "se " << "in tren mot dong." << endl;
return 0;
}
Output:
Day la dong thu nhat.
Day la dong thu hai voi \n.
Dong cuoi cung.
Van ban nay se in tren mot dong.
Ví dụ 1.1.4: Kết hợp chuỗi và biến
Một ứng dụng phổ biến là kết hợp chuỗi mô tả với giá trị của biến để tạo ra thông báo dễ đọc:
#include <iostream>
#include <string>
using namespace std;
int main() {
string ten = "Nguyen Van A";
int t = 20;
double dtb = 8.75;
cout << "Ten: " << ten << endl;
cout << "Tuoi: " << t << " tuoi\n";
cout << "Diem trung binh: " << dtb << endl;
return 0;
}
Output:
Ten: Nguyen Van A
Tuoi: 20 tuoi
Diem trung binh: 8.75
2. Nhập dữ liệu từ bàn phím với cin
cin
(viết tắt của console input) là đối tượng chuẩn được dùng để đọc dữ liệu từ luồng đầu vào chuẩn, mà thông thường chính là bàn phím.
Để "trích xuất" dữ liệu từ luồng nhập và lưu vào biến, chúng ta sử dụng toán tử trích luồng (extraction operator), ký hiệu là >>
. Toán tử này đọc dữ liệu từ luồng cin
ở bên trái và gán nó vào biến ở bên phải.
Ví dụ 1.1.5: Nhập một số nguyên
Chương trình sẽ dừng lại và chờ người dùng nhập một số nguyên từ bàn phím và nhấn Enter.
#include <iostream>
using namespace std;
int main() {
int sN;
cout << "Moi ban nhap mot so nguyen: ";
cin >> sN;
cout << "Ban vua nhap so: " << sN << endl;
return 0;
}
Output (ví dụ):
Moi ban nhap mot so nguyen: 15
Ban vua nhap so: 15
Ví dụ 1.1.6: Nhập các kiểu dữ liệu khác
Tương tự cout
, cin
có thể tự động xử lý việc đọc và chuyển đổi dữ liệu cho nhiều kiểu biến khác nhau (double
, char
, string
, v.v.).
#include <iostream>
#include <string>
using namespace std;
int main() {
double cc;
string t;
char kTD;
cout << "Nhap ten cua ban (chi mot tu): ";
cin >> t;
cout << "Nhap chieu cao cua ban (vd: 1.75): ";
cin >> cc;
cout << "Nhap mot ky tu bat ky: ";
cin >> kTD;
cout << "\n--- Thong tin da nhap ---\n";
cout << "Ten: " << t << endl;
cout << "Chieu cao: " << cc << " m" << endl;
cout << "Ky tu dau tien ban nhap: " << kTD << endl;
return 0;
}
Output (ví dụ):
Nhap ten cua ban (chi mot tu): Alice
Nhap chieu cao cua ban (vd: 1.75): 1.68
Nhap mot ky tu bat ky: A
--- Thong tin da nhap ---
Ten: Alice
Chieu cao: 1.68 m
Ky tu dau tien ban nhap: A
Ví dụ 1.1.7: Nhập nhiều giá trị trên cùng một dòng
Bạn có thể dùng toán tử >>
nhiều lần trên cùng một lệnh cin
để đọc nhiều giá trị vào các biến khác nhau, miễn là các giá trị đó được phân tách bởi khoảng trắng (space, tab, hoặc newline).
#include <iostream>
using namespace std;
int main() {
int dT, dL, dH;
cout << "Nhap diem Toan, Ly, Hoa, cach nhau boi khoang trang: ";
cin >> dT >> dL >> dH;
double dtb = (dT + dL + dH) / 3.0;
cout << "\nDiem trung binh cua ban la: " << dtb << endl;
return 0;
}
Output (ví dụ):
Nhap diem Toan, Ly, Hoa, cach nhau boi khoang trang: 8 8 9
Diem trung binh cua ban la: 8.33333
3. Kết hợp cin
và cout
để tạo chương trình tương tác
Mục đích chính của cin
và cout
là cho phép chương trình của bạn tương tác với người dùng. Mô hình tương tác phổ biến nhất là:
- Xuất lời nhắc (Prompt): Dùng
cout
để nói cho người dùng biết chương trình đang cần thông tin gì. - Nhập dữ liệu: Dùng
cin
để đọc dữ liệu người dùng gõ vào. - Xử lý: Chương trình thực hiện các thao tác cần thiết với dữ liệu vừa nhận được (tính toán, kiểm tra, v.v.).
- Xuất kết quả/thông báo: Dùng
cout
để hiển thị kết quả xử lý hoặc thông báo cho người dùng.
Ví dụ 1.1.8: Chương trình tính chu vi hình chữ nhật đơn giản
#include <iostream>
using namespace std;
int main() {
double d, r, cv;
cout << "Moi ban nhap chieu dai cua hinh chu nhat: ";
cin >> d;
cout << "Moi ban nhap chieu rong cua hinh chu nhat: ";
cin >> r;
cv = 2 * (d + r);
cout << "\n---------------------------\n";
cout << "Hinh chu nhat co chieu dai " << d
<< " va chieu rong " << r
<< " co chu vi la: " << cv << endl;
return 0;
}
Output (ví dụ):
Moi ban nhap chieu dai cua hinh chu nhat: 5.5
Moi ban nhap chieu rong cua hinh chu nhat: 3.2
---------------------------
Hinh chu nhat co chieu dai 5.5 va chieu rong 3.2 co chu vi la: 17.4
4. Một vài lưu ý quan trọng khi sử dụng cin
và cout
Bao gồm
<iostream>
: Luôn luôn nhớ#include <iostream>
ở đầu file code của bạn.#include <iostream> using namespace std; int main() { cout << "Hello"; return 0; }
Output:
Hello
- Luôn đưa ra lời nhắc khi nhập: Đừng bao giờ chỉ dùng
cin >> bien;
mà không có một dòngcout
phía trước để nói cho người dùng biết bạn đang chờ họ nhập gì. Chương trình sẽ chỉ đứng yên và người dùng không hiểu chuyện gì đang xảy ra. - Hiểu cách
cin
đọc dữ liệu: Nhớ rằngcin >>
mặc định bỏ qua khoảng trắng đầu và dừng ở khoảng trắng sau. Điều này quan trọng khi bạn cần đọc các chuỗi có chứa khoảng trắng. (Hãy chờ đợi bài vềgetline
nhé!). - Chọn
\n
hayendl
: Dùng\n
cho việc xuống dòng đơn thuần vàendl
khi bạn muốn dữ liệu được in ra ngay lập tức. Trong hầu hết các trường hợp đơn giản,\n
là đủ.
Bài tập ví dụ: C++ Bài 1.A1: Hello Fullhouse Dev
Viết chương trình bằng C++ để in văn bản Welcome to Fullhouse Dev
.
INPUT FORMAT
OUTPUT FORMAT
In ra văn bản Welcome to Fullhouse Dev
trên 1 dòng duy nhất.
Ví dụ:
Input
Welcome to Fullhouse Dev
Ouput
Welcome to Fullhouse Dev
Hướng dẫn giải như sau:
- Bạn cần sử dụng thư viện chuẩn của C++ cho việc nhập/xuất dữ liệu. Hãy suy nghĩ xem thư viện nào cung cấp các chức năng như in ra màn hình? Gợi ý: Bắt đầu bằng chữ 'i' và 'o'.
- Trong thư viện đó, có một đối tượng chuẩn dùng để đưa dữ liệu ra luồng đầu ra (thường là màn hình console). Tên của nó bắt đầu bằng
c
. - Để đưa một đoạn văn bản (một chuỗi ký tự) ra đối tượng này, bạn sử dụng toán tử
<<
. - Đoạn văn bản cần in là cố định:
Welcome to Fullhouse Dev
. Đoạn văn bản này cần được đặt trong dấu nháy kép ("
). - Toàn bộ lệnh in này sẽ nằm trong hàm chính của chương trình C++, thường là hàm
main
. Hàm này là điểm bắt đầu thực thi chương trình. - Sau khi in xong, hàm
main
thường trả về giá trị 0 để báo hiệu chương trình kết thúc thành công.
Tóm lại, bạn chỉ cần:
- Khai báo thư viện cần thiết ở đầu file.
- Viết hàm
main
. - Bên trong hàm
main
, sử dụng đối tượngcout
và toán tử<<
để in chuỗi"Welcome to Fullhouse Dev"
. - Kết thúc hàm
main
bằng câu lệnh trả về 0.
#include <iostream>
using namespace std;
int main() {
cout << "Welcome to Fullhouse Dev";
return 0;
}
Output:
Welcome to Fullhouse Dev
Comments