| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 8593 人关注过本帖
标题:【scanf_s 使用】
只看楼主 加入收藏
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:15 
【scanf_s 使用】
这个问题困扰我好几天。。

定义了一个结构体。。

#pragma pack(1)
typedef struct birth{
    int year;
    int month;
    int day;
};


typedef struct worker{
    int id;
    char name[100];
    int age;
    struct birth birthday;
};
#pragma pack()


struct worker id[99];

这个是执行代码。。

char addcc[3];
    char *paddc=addcc;
    int addc;
    addc=0;
    paddc="-1";
addgets:

    fflush(stdin);
    addc=scanf_s("%d,%s,%d,%d/%d/%d",&id[idno].id,1,&id[idno].name,10,&id[idno].age,&id[idno].birthday.year,&id[idno].birthday.month,&id[idno].birthday.day);
    printf("addc=%d",addc);
    if(addc!=6){
        if(addc==1)
        {
            if(id[idno].id==-1){
                backmenu(addcc);
            }else{
                printf("请按照正确的格式输入,或者输入-1返回上一目录\n");
            }
        }else{
            printf("请按照正确的格式输入,或者输入-1返回上一目录\n");
        }
    }else{
    printf("%d,%s,%d,%d/%d/%d",id[idno].id,id[idno].name,id[idno].age,id[idno].birthday.year,id[idno].birthday.month,id[idno].birthday.day);
    }


scanf_s总是溢出。。
怎么回事。



搜索更多相关主题的帖子: 结构体 
2014-08-04 09:21
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
addc=scanf_s("%d,%s,%d,%d/%d/%d",&id[idno].id,1,&id[idno].name,10,&id[idno].age,&id[idno].birthday.year,&id[idno].birthday.month,&id[idno].birthday.day);
这句有问题,1和10是干嘛用的?

[ 本帖最后由 embed_xuel 于 2014-8-4 12:17 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2014-08-04 11:10
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
全部都要加&?   还有scanf_s这个函数。。参数里的数字这个是怎么用的,应该怎么确定应该填多少呢。。

2014-08-04 12:02
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
你写的这句和我写的有什么区别么。。

2014-08-04 12:04
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:6 
回复 4 楼 zuifei07
就等着别人给你改好了是吧,难怪上个帖子不给分呢,不回答了

总有那身价贱的人给作业贴回复完整的代码
2014-08-04 12:18
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
你的问题说明代码不是你写的,或者说你压根就没有明白scanf_s函数该如何用,有什么用处。
scanf_s是微软旗下开发环境独有的输入函数,相对于常见的scanf函数,scanf_s一般来说需要指定三类参数,是三类,不是三个哈。,第一,格式说明;第二,参数地址;第三,需要读入的字符的数量。大致是这么理解的。
具体可以到微软MSDN网站查询,地址:http://msdn.(v=vs.110).aspx

或者http://msdn.("stdio%2Fscanf_s");k(scanf_s);k(DevLang-C%2B%2B);k(TargetOS-Windows)&rd=true
两个地址是同一个页面。
使用微软的编译器最好常去MSDN转转。
也可以参考这个帖子:https://bbs.bccn.net/viewthread.php?tid=434382&page=2#pid2426752

参照微软的示例代码修改一下你的代码试试。

代码测试环境:  WinXP+C-Free5.0.
2014-08-04 14:23
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
回复 4 楼 zuifei07
就等着别人给你改好了是吧,难怪上个帖子不给分呢,不回答了


。。。
那个帖子没有给分。。

2014-08-05 00:18
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
要不就是结贴。。记得有个还把全部分都给了你。。
发我没有给分的那个帖子。。

2014-08-05 00:19
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
要不就是结贴。。记得有个还把全部分都给了你。。
发我没有给分的那个帖子。。


2014-08-05 00:20
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
代码是我写的。。
因为不会用scanf_S所以才上来文。。

参照百度的例子。。大概说是那个数字是数组的下标。。
但是。。那个数字应该怎么用。或者用在那个地方。。
在msdn上也没有搞懂。。
所以才来论坛问。。

2014-08-05 00:21
快速回复:【scanf_s 使用】
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015585 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved