getline () ciąg znaków dający trudności

robię zadanie, w którym wprowadzam ist nie zawsze chcesz mieć wejście, a następnie wprowadzam pełną linię za pomocą getline, ale sime, jak nie jestem w stanie tego zrobić.

tutaj, gdy próbuję wpisać „1” jako mój nr. przypadków testowych natychmiast daje '0' jako odpowiedź, a poza pętlą dlaczego nie ma tego testu cin >>; tutaj kompatybilny z 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;
}   

trudność

input :
1
output:
0

expected
input:
1
Hello World
output
11

Cóż, zmieszałem trochę C, aby uzyskać moją odpowiedź

#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;
}   

questionAnswers(3)

yourAnswerToTheQuestion