【发布时间】:2016-10-05 23:14:56
【问题描述】:
我在晚年学习编程(50 多岁)。我正在使用 Visual Studio 2015 和 Code::Blocks 16.01 版。
我有一些问题。
首先,为什么 VS 和 CB 需要“调整”才能使它们编译和运行下面包含的代码? M_PI 怎么了? (我以为它是 的一部分,但显然 VS 不认识它) 为什么我必须在 VS 中执行 #define 而不是在 CB 中? 为什么 M_PI 不显示其定义的值?
旁注:我知道 scanff 已被弃用,但如果你必须走这条路,请随意。我们必须在课堂上使用它。
这是我第一次进入代码块。 它编译并运行。 这使用 stdio.h 和 math.h
// >>>> CODEBLOCKS VERSION <<<<
#include <stdio.h>
#include <math.h>
// M_PI is 3.14159265358979323849
int main ( void )
{
double myNumber = 0.0;
printf("Enter a number.\n");
scanf("%lf", &myNumber);
printf("You entered: %lf.", myNumber);
printf("This is the value of pi: %.20lf.", M_PI);
return 0;
}
当我将它粘贴到 Visual Studio 中并编译时,我得到一个错误。具体来说,“标识符“M_PI”未定义”。 如果我添加#define M_PI 3.14159265358979323849,错误就会消失,但我明白了 代码 C4996 -- 'scanf':此函数或变量可能不安全。考虑改用 scanf_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。详细信息请参见在线帮助。 如果我将 scanf 更改为 scanf_s 错误就会清除,代码编译并运行与代码块版本相同。 这使用 stdio.h 和 math.h 和
// >>>> VISUAL STUDIO VERSION <<<<
#include <stdio.h>
#include <math.h>
#define M_PI 3.14159265358979323849
int main(void)
{
double myNumber = 0.0;
printf("Enter a number.\n");
scanf_s("%lf", &myNumber);
printf("You entered: %lf.", myNumber);
printf("This is the value of pi: %.20lf.", M_PI);
return 0;
}
提前致谢!
【问题讨论】:
标签: c visual-studio codeblocks