首页 > 代码库 > SCANF SCANF_S

SCANF SCANF_S

今天在看C的教程的时候,用VS2013写了一小段代码 scanf("%f",&w);

 

提示需要在预编译器里添加 _CRT_SECURE_NO_WARNINGS,  百度了下,发现要么用 scanf_s 来代替scanf,要么就添加这个定义

原因是,VS针对scanf的不安全性,又包了一个scanf_s的函数 ,定义里,多了一个长度的参数, scanf_s("%s",buf,sizeof(buf));

这样不会导致内存溢出错误(比如只能接受4个长度的数组,输入的时候却输入了6个长度)

(我也没明白,这个溢出会有什么异常)

GCC里直接编译,scanf,不会有错误提示的,这个错误是Windows专有的.