标题:为什么在visual studio2015中一运行就提示已停止工作
只看楼主
carthy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-6-17
结帖率:0
已结贴  问题点数:20 回复次数:5 
为什么在visual studio2015中一运行就提示已停止工作
#include<stdio.h>

struct carthy
{
    char name[10];
    char shape[10];
    char color[10];
    int price;
    char area[20];
};

int main()
{
    struct carthy carthy1;

    scanf_s("%s", &carthy1.name);
    scanf_s("%s", &carthy1.shape);
    scanf_s("%s", &carthy1.color);
    scanf_s("%d", &carthy1.price);
    scanf_s("%s", &carthy1.area);

    printf("%s %s %s %d %s", carthy1.name, carthy1.shape, carthy1.color, carthy1.price, carthy1.area);

    return  0;
}

搜索更多相关主题的帖子: include visual return color price 
2016-08-11 11:07
carthy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-6-17
得分:0 
一般出现这种情况原因在什么地方?
2016-08-11 11:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
你既然用scanf_s这玩意,又不看scanf_s的说明
2016-08-11 11:09
carthy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-6-17
得分:0 
明白了 谢谢
2016-08-11 11:17
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
随便举个例子
scanf_s("%s", &carthy1.name);
首先,这里不应该加取地址符号吧(假如你说加了也不出错,那就当我没说过)
其次,按MSDN所言,其后应当接允许接收的最大数量,包括终止NULL,类型为unsigned,而非size_t
也就是 scanf_s( "%s", carthy1.name,(unsigned)sizeof(carthy1.name)/sizeof(carthy1.name[0]) );
但如果按MS强塞进C标准的说法,此地类型为rsize_t
也就是 scanf_s( "%s", carthy1.name,(rsize_t)sizeof(carthy1.name)/sizeof(carthy1.name[0]) );
2016-08-11 11:24
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
得分:10 
就用scanf就可以了,真是服了你了

我不是砖家,要努力成为砖家。
2016-08-11 11:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-467761-1-1.html




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

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