c++getline如何使用

问题遇到的现象和发生背景

想尝试使用getline来输入字符数组和输出字符数组
但是输入五个时总是只能输出四个QAQ

用代码块功能插入代码,请勿粘贴截图
#include 
#include 
using namespace std;

int main() {


    char b[5];

    cin.getline(b, 5);

    for (int i = 0; i < 5; i++)
        cout << b[i];

    return 0;

}

运行结果及报错内容

无报错
输入abcde
输出abcd

把5改成6,要留一个字符串结束标志的位置。
"asdf"长度是5(还有一个结束标志),getline读取4个字符,在加一个结束标志,构成一个长度为5(你给的参数)的字符串。