#include<stdio.h>
void main()
{
int i,j,kint *a
scanf("%d",&i) //不能写\n在scanf里面
a=(int *)malloc (sizeof(int) * i)
printf("%d个数\n",i)
for(j=0j<ij++)
{
printf("请输入数字:\n") //漏了个分号
scanf("%d",&k) //不能写\n在scanf里面
a[j]=k
printf("\n")
}
}
scanf需要输入指针是一个已经分配的地址,因为scanf不会为你自动分配内存的,你的char *没有初始化,所以会卡死(实际上是程序崩溃了)可以考虑char c[1000]这里1000是个很大的数,保证足够容纳输入的数据,然后再scanf("%s", c)
scanf("%s%d",p->name,p->ID)这一句有错误,应该是scanf("%s
%d",p->name,&(p->ID))使用scanf时要取变量的地址修改后的代码如下:#include<stdio.h>
struct
student
{
char
name[10]
int
ID
}
typedef
struct
student
student
main()
{
student
stu[3],*p
int
i
p=stu
FILE
*fp
fp=fopen("d:\\plane.txt","ab")
for(i=0i<3i++)
{
printf("请输入第%d个学生的信息,姓名
学号:\n",i+1)
scanf("%s
%d",p->name,&(p->ID))
p++
}
for(i=0i<3i++)
fwrite(&stu[i],sizeof(student),1,fp)
fclose(fp)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)