PAT单词逆置的问题

输入一个可能包含若干(至少1个)单词的句子(可以假设每个单词之间有且仅有一个空格,标点符号视为单词的组成部分),输出每个单词逆置后的英文句子(参看样例输出)。

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据输入一个字符串(长度不超过80),表示英文句子。

输出格式:
对于每组测试,输出每个单词逆置后的英文句子。

输入样例:
1
emoclew era uoY
输出样例:
welcome are You

#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>

using namespace std;

int main()
{
    int t;
    cin >> t >> ws;
    for (int i = 0; i < t; i++)
    {
        string line;
        getline(cin, line);
        istringstream ss(line);
        string str;
        int c = 0;
        while (ss >> str)
        {
            reverse(str.begin(), str.end());
            if (c > 0)
                cout << ' ';
            cout << str;
            c++;
        }
        cout << '\n';
    }
    return 0;
}