我尝试使用C语言编写一个非常简单的程序。 我使用Visual Studio和CodeBlocks进行编译。
但是这段代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
float a;
printf("Give a number: \n");
scanf("%f", &a);
float b = a * 2;
printf("The result is: %f", b);
}
它使用CodeBlocks,但不能使用Visual Studio。 你能给我一个提示吗?
是的,我刚刚开始学习编码。编辑:严重性代码描述项目文件行抑制状态 错误C4996&#39; scanf&#39;:此函数或变量可能不安全。请考虑使用scanf_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。详细信息请参见在线帮助。变量c:\ users \ PinkP \ documents \ visual studio 2015 \ projects \ variables \ variables.c 32
答案 0 :(得分:1)
scanf("%f", &a);
不安全,他们更喜欢安排弃用函数。 (虽然ISO没有这样的计划。)他们真的希望你使用scanf_s
,因为这样不太可能弄乱你的记忆。
您可以按照编译器消息禁用此警告:即#define
_CRT_SECURE_NO_WARNINGS
。
具有讽刺意味的是,编译器允许你的非标准main()
函数没有抽搐!请考虑使用更便携的
int main()
自C99以来一直需要。
答案 1 :(得分:0)
Visual Studio 2015对于已弃用的功能比2010年更为严格。
正如Visual Studio 2010所做的那样,它不仅仅是建议你需要对scanf
的使用做些什么,而是强迫你对它做点什么。
您需要切换到scanf_s
或使用_CRT_SECURE_NO_WARNINGS。