为什么m赋值不到a[]里?

想把输入的单个字符连成一个char[]的字符串,但是做不出来,求大佬帮助

#include
using namespace std;
int main()
{
char m; char a[50]; int i = 0;
while (1)
{
cin >> m;
a[i] = m;
}
}

拿字符串的首地址用cin输入就行了,接收到空格或者回车就停止输入了

 #include<iostream>
using namespace std;
int main()
{
    char a[50];
    cin >> a;
    cout << a;
    return 0;
}

#include

using namespace std;

int main ()
{
char a [50];
char* ptr_a = a;
char in ;
for(int a = 0 ; a {
cin >> in ;
*ptr_a = in;
ptr_a++;

}

return 0 ;

}