鱼C论坛

 找回密码
 立即注册
查看: 1654|回复: 7

哥哥们求解

[复制链接]
发表于 2016-3-20 22:54:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写的结构体为什么会中断
#include <stdio.h>
#include <stdlib.h>
void print(struct stu student);
struct stu
{
        int num;
        char *name;
        char sex;
        char *dizhi;
};
void print(struct stu student)
{
        printf("the student's num is %d\n", student.num);
        printf("the student's num is %s\n", student.name);
        printf("the student's num is %c\n", student.sex);
        printf("the student's num is %s\n", student.dizhi);

}
void main()
{
        struct stu student1;
       
       
        printf("please input the information of the student :\n");
        printf("please input the student's num:\n");
        scanf_s("%d", &student1.num);
        //getchar();
        printf("please input the student's name:\n");
        scanf_s("%s", &student1.name);
        //getch();
        printf("please input the student's  sex:\n");
        scanf_s("%c", &student1.sex);
        printf("please input the student's dizhi;\n");
        scanf_s("%s", &student1.dizhi);
        print(student1);
}

结果是这样

结果是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-21 00:25:07 | 显示全部楼层
迅雷速度71KB。亮点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-21 01:00:24 | 显示全部楼层
本帖最后由 ℡.xiao敏 于 2016-3-21 01:43 编辑


Angel丶L 发表于 2016-3-21 00:25
迅雷速度71KB。亮点


那是百度云管家。并不是迅雷。

还有,出错原因和危险都很多。
首先:

如果
        用户在输入用户号码的时候输入char,会崩。
如果
        用户在输入用户名字的时候输入int,也会崩。

你的%s和%d都要先判断才能植入啊。

还有,你scanf_s来的字符串,存入结构,可你结构里面的都是指针啊,并没有空间呐。你要先有空间才能存字符串啊。所以把结构改下。

还有scanf_s参数还有一个的……scanf_s最后一个参数是缓冲区的大小,表示最多读取n-1个字符.

改成这样就可以了:
struct stu
{
        int num;
        char name[128];
        char sex[128];
        char dizhi[512];
};

void print(stu student)
{
        printf("the student's num is %d\n", student.num);
        printf("the student's name is %s\n", student.name);
        printf("the student's sex is %c\n", student.sex);
        printf("the student's dizhi is %s\n", student.dizhi);

}
void main()
{
        stu student1 = {0};        //创建结构先初始化一下。不然就会输出很多莫名其妙的东西。

        printf("please input the information of the student :\n");
        printf("please input the student's num:\n");

        scanf_s("%d", &student1.num);

        printf("please input the student's name:\n");
        scanf_s("%s", &student1.name,128);

        printf("please input the student's  sex:\n");
        scanf_s("%s", &student1.sex,128);

        printf("please input the student's dizhi;\n");
        scanf_s("%s", &student1.dizhi,512);

        print(student1);


        system("pause");
}

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
拈花小仙 + 2 + 2 + 2 热心回复~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-3-21 01:19:42 | 显示全部楼层
℡.xiao敏 发表于 2016-3-21 01:00
那是百度云管家。并不是迅雷。

还有,出错原因和危险都很多。

从小就眼拙。见谅了哈。
你来看看这个
http://bbs.fishc.com/forum.php?mod=viewthread&tid=70164
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-21 02:01:03 | 显示全部楼层
Angel丶L 发表于 2016-3-21 01:19
从小就眼拙。见谅了哈。
你来看看这个
http://bbs.fishc.com/forum.php?mod=viewthread&tid=70164

看了,我相信啊……人家黑客银行数据库都能改。改个Q币有啥不可能呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-21 07:51:01 | 显示全部楼层
℡.xiao敏 发表于 2016-3-21 01:00
那是百度云管家。并不是迅雷。

还有,出错原因和危险都很多。

谢谢你了,刚开始学小甲鱼的C语言结构体谢谢指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-21 07:52:55 | 显示全部楼层
Angel丶L 发表于 2016-3-21 00:25
迅雷速度71KB。亮点

学校校园网这样我也欸办法,我有不是百度云会员,只能看他慢慢的流咯,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-21 17:19:49 | 显示全部楼层
星域驰骋 发表于 2016-3-21 07:52
学校校园网这样我也欸办法,我有不是百度云会员,只能看他慢慢的流咯,

可以用破解版百度云管家……嘿嘿,不限速
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表