getline đọc một dòng từ luồng nhập (istream) vào chuỗi ký tự (string), dừng khi gặp ký tự phân cách (mặc định là '\n') hoặc đọc đủ số ký tự cho phép.
Cú pháp
istream& getline(istream& is, string& str, char delim = '\n'); istream& getline(char* s, streamsize n); istream& getline(char* s, streamsize n, char delim);
Tham số
is: luồng nhập (thường làcin).str: đối tượngstd::stringnhận kết quả.delim: ký tự kết thúc dòng (mặc định newline).- Phiên bản C-style:
slà mảng char,nlà kích thước tối đa (kể cả null terminator).
Ví dụ minh họa
#include <iostream>
#include <string>
using namespace std;
int main() {
string name, movie;
cout << "Nhap ten cua ban: ";
getline(cin, name); // đọc cả dòng, bao gồm khoảng trắng
cout << "Nhap phim yeu thich: ";
getline(cin, movie);
cout << name << "'s favourite movie is " << movie;
return 0;
}
Kết quả
Nhap ten cua ban: Nguyen Van A Nhap phim yeu thich: The Matrix Nguyen Van A's favourite movie is The Matrix
Lưu ý quan trọng: Sau khi dùng cin >> x, ký tự newline còn lại trong bộ đệm. Cần gọi cin.ignore() trước getline để tránh đọc dòng trống.