Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm getline (string) trong C++

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ượng std::string nhận kết quả.
  • delim: ký tự kết thúc dòng (mặc định newline).
  • Phiên bản C-style: s là mảng char, n là 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.