Code
#include<iostream>
int main()
{
    char s[20];
    char ch;
    
    std::cin.getline(s,10);
    std::cout<<"x"<<s<<"x"<<"\n";
    
    std::cin>>ch;
    std::cout<<"x"<<ch<<"x";
    
    std::cin>>ch;
    std::cout<<"x"<<ch<<"x";
    
    std::cin>>ch;
    std::cout<<"x"<<ch<<"x";
}
Output-1
bonaparte    // I entered these 9 characters as input
xbonapartex
a            //  input
xax
b            // input
xbx
c            // input
xcx
Output-2
bonaparte2    // I entered these 10 characters as input
xbonapartex
x x
x x
x x
I just entered one extra letter means total 10 char through keyboard bonaparte2 compared to 1st output.
According to me getline is going to extract 9 characters and add '\0' and store in string s. So stream remains with characters 2 and \n. so first cin>>ch should take 2 and print x2x.
Now 2nd cin>>ch should ignores \n as it is leading whitespace character but none of this is happening.  Program is not asking from input from keyboard.
 
     
    