scanf_s函数是C11标准中新增加的安全输入函数,用于从标准输入中读取数据。
它的函数原型为:
int scanf_s(const char* format, …);
scanf_s函数的用法与scanf函数类似,但是scanf_s函数在读取数据时会进行参数检查,防止缓冲区溢出。scanf_s函数与scanf函数的主要区别在于,scanf_s函数需要额外传入要读取数据的缓冲区大小。
下面是一个scanf_s函数的使用示例:
#include <stdio.h>
int main() {
int num;
printf(“请输入一个整数:”);
scanf_s(“%d”, &num, sizeof(int));
printf(“你输入的整数是:%d\n”, num);
return 0;
}
在这个例子中,我们首先声明了一个整型变量num,然后使用scanf_s函数从标准输入中读取一个整数,并将其保存到num变量中。sizeof(int)用于指定缓冲区的大小,确保读取数据时不会发生缓冲区溢出。
需要注意的是,scanf_s函数必须在支持该函数的编译器环境下才能使用。对于不支持scanf_s函数的编译器,可以考虑使用其他安全输入函数,或者自行编写输入检查代码来保证输入的安全性。