在 C 语言中,使用 %d
这类格式控制符来打印数字主要有以下几个原因:
-
格式化输出的需要:C 语言的
printf
函数需要明确指定输出数据的类型和格式,以便正确地将数据转换为可读的文本形式输出。%d
专门用于表示有符号整数类型(如int
)的输出格式。 -
类型的明确性:通过使用特定的格式控制符,如
%d
对应整数,%f
对应浮点数等,能够清晰地表明要输出的数据类型,避免了输出结果的不确定性和错误。 -
可移植性:遵循固定的格式控制规则可以使 C 语言程序在不同的编译器和操作系统上保持一致的输出行为,增强了程序的可移植性。
-
精度控制:除了基本的数据类型指定,还可以通过进一步的修饰符来控制输出的精度、宽度等,例如
%5d
表示输出至少占 5 个字符宽度的整数。
例如,如果要打印一个整数变量 num
的值,可以这样写:
c
int num = 10;
printf("%d", num);
这能够清晰、准确地将 num
的整数值以合适的形式输出到控制台。
//输入2个整数
scanf("%d %d", &num1, &num2);
scanf();是一个输入函数,需要的是个地址。"%d %d"指定是格式,按照两个整型的格式去读取。读取的数值放到&num1, &num2里面去。
printf();是一个输出函数
这个报错只在VS环境下,其他环境不用考虑。
意思是:scanf这个函数或者变量可能不安全,考虑使用scanf_s来替换,如果让描述失效,请使用_CRT_SECURE_NO_WARNINGS.
解决方法是,在代码源文件的第一行加上 #define _CRT_SECURE_NO_WARNINGS
需要注意的是:scanf_s这个函数是VS编译器自己提供的函数,非标准C提供的函数,那也就是只有VS编译器认识,其他编译器不认识!
在VS 的安装路径下有一个文件:newc++file.cpp的文件里有#define _CRT_SECURE_NO_WARNINGS这句话,
以后在VS工程中创建新的.c或者.cpp文件的时候,都是拷贝newc++file.cpp这个文件的。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;//初始化
//输入2个整数
scanf("%d %d", &num1, &num2);
//求和
int sum = num1 + num2;
//输出
printf("%d \n", sum);
return 0;
}