一次小记录,关于gets,scanf,还有getchar的用法真的水太深,缓冲区啥的鼠鼠看的想紫砂,只好每次都把教训记下来。。。
这次是在写火车票管理系统时出现的问题,因为在添加车次时需要读入多个数据,而且多是字符串数组,回车空格啥的好难搞,还有这个malloc也没学明白,导致了这次事故。
最后结论差不多就是,出现问题试试先正确malloc一下,读入最好使用scanf("%s",a);
int main()
{
int b,c;
char *a,*d;
a = (char*)malloc(sizeof(char)*10);/*问题出现在这里,太抽象了,不给a malloc后面用什么方式读a都会直接结束*/
//gets(a);
scanf("%d",&b);
getchar();
//gets(a);
scanf("%s",a);
puts(a);
scanf("%d",&c);
scanf("%s",d);
//gets(d);
printf("%s %d %d %s\n",a,b,c,d);
free(a);
return 0;
}