数组初始化有关问题

数组初始化问题
#include<iostream>
using namespace std;
void main()
{char b;
cin>>b;
char a[]={b};
cout<<a<<endl;
}
我想定义出一个数组存储名字,功能是随便输入一个名字它都可以存起来。
我写这个程序错在哪里

------解决方案--------------------
C/C++ code

#include<iostream>
#include<string>
using namespace std;
int main()
{string str;
cin>>str;
cout<<str<<endl;
}