《明解C语言》第一章总结与感悟
//表现出显示与输出,并且使用乘法
#include <stdio.h>
int main()
{
int height, width;
puts("输出长方形的面积");
scanf("%d", &height);
printf("长为:%d\n", height);
scanf("%d", &width);
printf("宽为:&d\n", width);
printf("长方形的面积为:%d", height * width);
return 0;
}
这是看完第一章之后,最后写出来的对于第一章领悟的代码,但是出现了问题,通过对这个错误的代码进行修正与分析,开始对于第一章的总结。
VS给出的错误提示,主要是
- printf: 格式字符串中传递的参数太多
- 返回值被忽略: “scanf”
- ‘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.
修改后的程序为
//表现出显示与输出,并且使用乘法
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
int main()
{
int height, width;
puts("输出长方形的面积");
printf("长为:\n");
scanf_s("%d", &height);
printf("宽为:\n");
scanf_s("%d", &width);
printf("长方形的面积为:%d", height * width);
return 0;
}
1、关于第二个问题
将scanf改为scanf_s可以解决
2、关于第三个错误
原因在查找资料后发现是Visual C++ 使用了更加安全的 run-time library routines,解决方法是定义了新的宏
#define _CRT_SECURE_NO_DEPRECATE
在这里需要注意的是这个定义要放在所有include的前面
第一章的总结
- 变量与常量
- 输入和显示
1、变量与常量
字符串常量:在 printf 里面第一个实参就是字符串常量,如代码中的
puts("输出长方形的面积")
,引号内就是字符串常量
(1)声明
例如:int x;
在这里,会随机赋一个垃圾值
(2)初始化
(初始化是在声明的时候进行)
例如:int x=2;
(3)赋值
(赋值是在已经生成变量的情况下给数值以变量)
例如:x=2;
2、输入与显示
(1)scanf()/scanf_s()
格式:scanf_s("%d", &height);
在逗号外要加上 & 符号
(2)printf()
格式:printf("长方形的面积为:%d", height * width);
(3)puts()
格式:puts("输出长方形的面积");
这个函数不仅可以输出实参,还可以换行
但是这样的格式是不对的puts(2)