Toán tử >>
#include <string>
// Non-member function
std::istream& operator>>( std::istream& is, std::string& str );
Đọc dữ liệu từ một luồng đầu vào (input stream, ví dụ: std::cin) và lưu trữ nó vào một đối tượng std::string.
Tham số
is
- Tham chiếu đến luồng đầu vào (input stream) mà từ đó dữ liệu sẽ được đọc (ví dụ: std::cin).
str
- Tham chiếu đến đối tượng std::string nơi dữ liệu sẽ được lưu trữ.
Giá trị trả về
std::istream&
- Tham chiếu đến luồng đầu vào (is).
Đặc điểm
- Toán tử
>>
đọc dữ liệu cho đến khi gặp ký tự khoảng trắng (dấu cách, tab, xuống dòng,...). Nếu bạn muốn đọc toàn bộ một dòng, bao gồm cả khoảng trắng, hãy sử dụng hàmstd::getline()
. - Toán tử
>>
tự động bỏ qua các ký tự khoảng trắng ở đầu luồng đầu vào. - Toán tử
>>
thay đổi trực tiếp nội dung của đối tượng std::string. - Toán tử
>>
trả về tham chiếu đến luồng đầu vào, cho phép bạn thực hiện chuỗi các phép đọc, ví dụ:std::cin >> str1 >> str2;
. - Bạn nên kiểm tra lỗi sau khi sử dụng toán tử
>>
(ví dụ: kiểm tra xem std::cin có ở trạng thái tốt hay không) để đảm bảo rằng việc đọc dữ liệu thành công. - Toán tử
>>
thường được sử dụng để:- Đọc dữ liệu từ bàn phím (std::cin) và lưu vào một chuỗi std::string.
- Đọc dữ liệu từ file và lưu vào một chuỗi.
- Đọc dữ liệu từ các nguồn đầu vào khác (ví dụ: stringstream).
Phân biệt với getline()
- Toán tử
>>
: Đọc dữ liệu cho đến khi gặp khoảng trắng. std::getline()
: Đọc dữ liệu cho đến khi gặp ký tự xuống dòng (hoặc một ký tự kết thúc do bạn chỉ định).
Ví dụ
#include <iostream>
#include <string>
int main() {
std::string name;
std::string lastName;
std::cout << "Enter your first name: ";
std::cin >> name; // Đọc tên (đến khi gặp khoảng trắng)
std::cout << "Enter your last name: ";
std::cin >> lastName;
std::cout << "Hello, " << name << " " << lastName << "!" << std::endl;
return 0;
}
Các hàm liên quan
getline | Đọc một dòng dữ liệu từ luồng đầu vào và lưu trữ nó vào một đối tượng std::string |
Toán tử << | Ghi hoặc đưa nội dung của một chuỗi std::string vào một luồng đầu ra |