That version of getline works with C style strings. In C++ you should probably work with C++ strings instead. If you used those, then you would not have to specify the number of characters, the string class would automatically grow to fit whatever the user types in.
The problem you are having is because C style strings require space for a terminating null character. This extra character is added to the end of the array to signal the end of the string. The number you pass to getline is the size of the string, including the spot for that null character.
So when you pass 3, then getline reads in 'T' and 'O' and then adds the terminating null character '\0' in the third spot.
Here is an example using C++ strings:
Code:
#include <iostream>
#include <string>
int main()
{
using namespace std;
string response;
getline(cin, response);
cout << "Your response was: " << response << '\n';
}