getline () una cuerda dando dificultad

Estoy haciendo una tarea en la que estoy ingresando. No, muchas veces, quiero ingresar y luego estoy ingresando una línea completa con el uso de getline, pero de la misma manera no puedo hacer eso.

aquí cuando intento ingresar '1' como mi no. de los casos de prueba, instantáneamente da '0' como respuesta y fuera del bucle, ¿por qué no es esto cin >> prueba; aquí compatible con getline (cin, s);

#include<iostream>
#include<string>

using namespace std;

int main()
{
    int test,j; 
    cin>>test;

    int len;
    string s;       
    for(j=1;j<=test;j++)
    { 
        getline( cin,s);
        len = s.length();
        cout<<len;

    }
    return 0;
}   

la dificultad

input :
1
output:
0

expected
input:
1
Hello World
output
11

Bueno mezclé un poco de C para obtener mi respuesta.

#include<iostream>
#include<string>
#include<cstdio>

using namespace std;

int main()
{
    int test,j; 
    scanf("%d\n",&test);

    int len;
    string s;       
    for(j=1;j<=test;j++)
    { 
        getline( cin,s);
        len = s.length();
        cout<<len;

    }
    return 0;
}   

Respuestas a la pregunta(3)

Su respuesta a la pregunta