2 qq 29777783 qq_29777783 于 2015.07.13 15:12 提问

c语言的问题,求大神的指导

#include"stdio.h"
#include"stdlib.h"
struct stu
{ char name[10];
unsigned no,age;
};
void main()
{
struct stu *s;
FILE *fp;
scanf("%s%d%d",s->name,&s->no,&s->age);
fprintf(fp,"%s%d%d",s->name,&s->no,&s->age);
if((fp=fopen("stu.txt","w"))==NULL)
{ printf("cannot open file");
exit(1);}
fclose(fp);
if((fp=fopen("stu.txt","r"))==NULL)
{ printf("cannot open file");
exit(1);}

fscanf(fp,"%s%d%d",s->name,&s->no,&s->age);
printf("%s%d%d",s->name,s->no,s->age);
fclose(fp);
}成功创建了文本,但是无法把我输入的东西输入到文本上图片说明

7个回答

xxwwdd
xxwwdd   2015.07.13 15:17

struct stu *s;
没有创建 s就,直接使用,因此出现异常

bdmh
bdmh   Ds   Rxr 2015.07.13 15:20

第一次fprintf时,fp还没有关联到文件呢

qq_29777783
qq_29777783 谢谢,可以了!
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2015.07.13 15:20

不但fp没有初始化,结构体stu也没有初始化,应该先new一个对象

u010800530
u010800530   2015.07.13 17:19

scanf("%s%d%d",s->name,&s->no,&s->age);
你的s还没有实例化,怎么能直接赋值呢?首先你要实例化这个s

qq_29777783
qq_29777783 谢谢,可以了!
2 年多之前 回复
qq_29777783
qq_29777783 什么是实例化?我该如何做?
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.13 19:48

struct stu *s;
没有创建 s就,直接使用

不但fp没有初始化,结构体stu也没有初始化

qq_29777783
qq_29777783 谢谢,可以了!
2 年多之前 回复
zuodijianke
zuodijianke 出错的语句是在fprintf上面的fp上,s指针虽然没有指向实际struct stu,一般会警告,野指针罢了,存在风险,但还是可以运行的呀!建议还是实例化,把指针指向内存实例!
2 年多之前 回复
knight1840
knight1840   2015.07.13 21:26

结构体指针没有实例化呀~~

qq_29777783
qq_29777783 谢谢,可以了!
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.16 15:25

求大神指导,这个线性表的问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片