c语言中不用scanf可以用scanf_s来代替。
scanf函数在读取时不检查边界,所以可能会造成内存访问越界。scanf_s函数带“_s”后缀是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素。格式为“scanf_s(格式符,变量...变量,缓冲长度)”返回成功读入的数据项数,读取单个字符也需要限定长度。
扩展资料:
scanf_s函数被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。变量的地址是在编译阶段分配的(存储顺序由编译器决定)。
如果scanf_s函数中格式符是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。