想实现回车结束循环输入但是一直实现不了一直在循环不知道怎么解决

#include <iostream>
#include <string>
#include <iomanip>
int main ()
{
using namespace std;
char str[5][40],t;
int i,j;
    for(i=1;i<=5;i++)
    {
        for(j=1;j++;)
        {
            cin>>str[i][j];
            if((str[i][j]=getchar())=='\0')
                break;
        }
    }

    cout<<endl;

    for(j=1;j<11;j++)
        {
            for(i=1;i<=10-j;i++)
                {
                    if(str[i][j]>str[i][j+1])
                        {
                            t = str[i][j];
                            str[i][j] = str[i][j+1];
                            str[i][j+1] = t;

                        }
                }
        }
    cout<<"the sorted nummbers:"<<endl;
    for(i=1;i<5;i++)
        for(j=1;j++;)
        {
            cout<<str[i][j];
        }
}

第13的cin>>str[i][j];改成
str[i][j] = cin.get();
第14行改成
if(str[i][j] == '\n') //判断是否是回车

cin>>str[i][j];
if((str[i][j]=getchar())=='\0')
既然你把输入给了数组,为什么又用getchar()去给数组赋值,你这不是直接将输入丢弃了吗