#include
#include
int main(void){
int n;
char *p;
puts("input number");
scanf("%d",&n);
p=(char *)malloc(n*sizeof(char));
if(p==NULL)
{
puts("make failed");
exit(EXIT_FAILURE);
}
fflush(stdin);//清空输入缓冲区,否则gets会把之前输入数字后面的回车当做一个字符串输入。
gets(p);
puts(p);
return 0;
}
scanf 在缓冲区遗留了一个换行符 被gets接受
在scanf语句之后加一个
fflush(stdin); 清除缓冲区就好了
p=(char *)malloc(n*sizeof(char)); //为p分配空间 ,假设这是a句,
gets(p); //请注意,在这一句与a句之间,并未给指针p指向一个字符串 或字符。那么,你让程序如何gets()呢??