为什么当输入的有空格时,就从空格后面的就没法输出了?

system("color 2f");

char a[1000]="abc";
scanf("%s",&a);
printf("%s\n",a);
system("pause");

eg:输入:abcd sdegjrfj
则输出:abcd

空格后面的为什么没法输出了?
应该怎么改?请写一下 。谢谢!

 scanf("%[^\n]", a);

空格会被认为结束,按老曹那样写就行了

在scanf的下一行,加一个getchar()试试

如果想让字符创能接收空格的话就用gets