| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 533 人关注过本帖
标题:求各位帮忙调试一下
只看楼主 加入收藏
li362490567
Rank: 1
等 级:新手上路
帖 子:89
专家分:8
注 册:2015-7-9
结帖率:0
收藏
 问题点数:0 回复次数:2 
求各位帮忙调试一下
#include<stdio.h>
#include<string.h>
#define DENSITY 62.4
int main(void)
{
    float weight, volume;
    int size, letters;
    char name[40];
    printf("Hi! What's your first name?\n");
    scanf_s("%s", name);
    printf("%s, what's your weight in pounds?\n", name);
    scanf_s("%f", &weight);
    size = sizeof name;
    letters = strlen(name);
    volume = weight / DENSITY;
    printf("Well, %s, your volume is %2.2f cubic feet.\n", name, volume);
    printf("Also, your first name has %d letters,\n", letters);
    printf("and we have %d bytes to store it in.\n", size);
    return 0;
}
调试输入name后为何显示一串“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫”乱码??
搜索更多相关主题的帖子: volume letters include 
2015-07-10 11:33
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:0 
我的gcc不支持scanf_s,我换成scanf是可以的
你用scanf_s要把后面的长度限制加上scanf_s("%s", name, 40);
2015-07-10 15:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
以下是引用calix在2015-7-10 15:51:50的发言:

我的gcc不支持scanf_s,我换成scanf是可以的
你用scanf_s要把后面的长度限制加上scanf_s("%s", name, 40);
这里面的恩怨和内幕就不谈了,反正目前看来,gcc是不会支持的。
顺路说几点:
a. 它的大名叫 Annex K,绰号叫 Bounds-checking Interfaces
b. C11中加入
c. 它是可选的特性(optional feature)
d. __STDC_LIB_EXT1__ 是标准库用来标明是否支持它,__STDC_WANT_LIB_EXT1__ 是码农用来表示是否引入它
e. gcc不想支持,vc原本的库和被迫修改后的标准不一致。gcc中可以使用一个第三方的代码将scanf_s转化为scanf;vc中可以关闭SDL检查使得scanf可用。
2015-07-10 16:23
快速回复:求各位帮忙调试一下
数据加载中...
 
   



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

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