| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:新手找不出错误....
只看楼主 加入收藏
邵楠91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-1-15
结帖率:66.67%
收藏
已结贴  问题点数:18 回复次数:8 
新手找不出错误....
#include <stdio.h>
void main()
{
    float tran(float);
    float c,x;
    scanf("%f", &c);
    x = tran(c);
    printf("%6.1f^F = %6.1f^C", c, x);
}

float tran(float a)

{
    return(5.0 / 9.0)*(a - 32.0);
}
说程序在scanf有问题
搜索更多相关主题的帖子: include return 
2014-01-19 11:44
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:6 
能编译和运行,不知道你说的错误是什么

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-19 14:05
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:6 
我表示没发现

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-01-19 14:28
邵楠91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-1-15
收藏
得分:0 
回复 2楼 yuccn
1>------ 已启动生成:  项目: ConsoleApplication2, 配置: Debug Win32 ------
1>  源.cpp
1>c:\users\administrator\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\源.cpp(6): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vc2013\vc\include\stdio.h(283) : 参见“scanf”的声明
1>c:\users\administrator\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\源.cpp(14): warning C4244: “return”: 从“double”转换到“float”,可能丢失数据
========== 生成:  成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========



每次出现这句话       error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.


我用的是vs2013
2014-01-19 15:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:6 
查詞典翻譯一下英文就知道是什麽意思

授人以渔,不授人以鱼。
2014-01-19 16:10
邵楠91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-1-15
收藏
得分:0 
回复 5楼 TonyDeng
哦,我知道了,每次出现明显错误才仔细看,遇到这种警告就没在意。。可是为什么会不安全啊
2014-01-19 16:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
爲什麽不安全,它提示你去看在綫幫助,即MSDN。簡略地說,這類舊式庫函數(諸如scanf()、printf()、gets()等)存在内存溢出攻擊的安全漏洞,特別是交互式輸入數據的函數,當缺少接受數據容量的參數時,就會被用戶使用超出要求容量的方式注入數據覆蓋内存、破壞數據或系統。比如,你原本希望接收的字符串容量爲100字節,但gets()可能被實際輸入了數兆字節的數據進來(一直不按回車即可),是你定義的數組無法容納的,這些數據會覆蓋往後的内容(像字符串越界寫入一樣)。新型的安全函數,都特意加上限制數量的參數,即使輸入的數據超出要求,函數也不會處理溢出的數據,不至於出現那種問題。

[ 本帖最后由 TonyDeng 于 2014-1-19 18:32 编辑 ]

授人以渔,不授人以鱼。
2014-01-19 18:15
邵楠91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-1-15
收藏
得分:0 
回复 7楼 TonyDeng
多谢1
2014-01-21 11:25
湖人法
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-10-24
收藏
得分:0 
回复 楼主 邵楠91
右键点击那文件,点击属性,然后点c++,然后点击高级,在那禁用特定警告那输入4996。应该就行了。
2018-10-24 13:16
快速回复:新手找不出错误....
数据加载中...
 
   



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

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